Ruby on Rails Tutorial για αρχάριους με Project & Example
Τι είναι η Ruby;
Ruby είναι μια υψηλού επιπέδου, ερμηνευμένη και αντικειμενοστραφής γλώσσα προγραμματισμού. Είναι μια δυναμική γλώσσα ανοιχτού κώδικα που έχει μια μεγάλη κοινότητα πίσω της. Το Ruby σχεδιάστηκε για απλότητα και παραγωγικότητα. Ενθαρρύνει τη σύνταξη κώδικα λογισμικού πρώτου ανθρώπου και δεύτερου υπολογιστή. Δημιουργήθηκε από τον Yukihiro Matsumoto στην Ιαπωνία το 1995.
Τι είναι το Rails;
Κάγκελα είναι ένα πλαίσιο ανάπτυξης γραμμένο σε Ruby για τη δημιουργία διαδικτυακών εφαρμογών. Δημιουργήθηκε ως το θεμέλιο της εφαρμογής Basecamp και στη συνέχεια κυκλοφόρησε ως λογισμικό ανοιχτού κώδικα το 2004. Το Rails προσφέρει πολλές ενσωματωμένες τυπικές λειτουργίες και λειτουργίες, γεγονός που το καθιστά κατάλληλη επιλογή για πρωτοτυποποίηση και ανάπτυξη MVP.
Δημιουργήθηκε από τον David Heinemeier Hasson ευρέως γνωστό ως DHH. Είναι ένα από τα πιο επιδραστικά και δημοφιλή εργαλεία για τη δημιουργία διαδικτυακών εφαρμογών. Χρησιμοποιείται από μερικά από τα αγαπημένα sites όπως το Airbnb, Github, Shopify κ.λπ.
Γιατί Rails;
Ακολουθούν τα πλεονεκτήματα/πλεονεκτήματα της χρήσης Rails:
- Το Rails είναι συσκευασμένο ως κόσμημα Ruby και μπορείτε να το χρησιμοποιήσετε για να δημιουργήσετε μια ποικιλία εφαρμογών.
- Σας επιτρέπει να δημιουργείτε τακτικές εφαρμογές web, εφαρμογές ηλεκτρονικού εμπορίου, σύστημα διαχείρισης περιεχομένου και πολλά άλλα.
- Το Rails είναι ένα πλαίσιο πλήρους στοίβας που περιλαμβάνει όλα όσα χρειάζεστε για να δημιουργήσετε μια εφαρμογή web που βασίζεται σε βάση δεδομένων, χρησιμοποιώντας το μοτίβο Model-View-Controller.
- Αυτό σημαίνει ότι όλα τα επίπεδα είναι κατασκευασμένα για να λειτουργούν απρόσκοπτα μαζί με λιγότερο κώδικα. Απαιτεί λιγότερες γραμμές κώδικα από άλλα πλαίσια.
Πώς να κατεβάσετε και να εγκαταστήσετε το Ruby στο Windows
Η διαδικασία εγκατάστασης θα εξαρτηθεί από το λειτουργικό σας σύστημα. Θα προχωρήσετε στην εγκατάσταση του Ruby Windows, Mac και Linux.
Βήμα 1) Κατεβάστε το Rubyinstaller
Ο ευκολότερος τρόπος για να εγκαταστήσετε το Ruby στο δικό σας Windows Ο υπολογιστής είναι μέσω του Ruby Installer το οποίο μπορείτε να κατεβάσετε στο https://rubyinstaller.org/.
Το μόνο που έχετε να κάνετε είναι να εκτελέσετε το πρόγραμμα εγκατάστασης που έχετε λάβει.
Βήμα 2) Κάντε κλικ στο ληφθέν πρόγραμμα εγκατάστασης
Double-κάντε κλικ στο ληφθέν πρόγραμμα εγκατάστασης «rubyinstaller-2.4.1-2-x64.exe».
Βήμα 3) Αποδεχτείτε την άδεια
Επιλέξτε το κουμπί επιλογής «Αποδέχομαι την άδεια» και κάντε κλικ στο κουμπί «Επόμενο». Αυτό θα σας οδηγήσει στο επόμενο σχήμα παρακάτω:
Βήμα 4) Επιλέξτε τα δύο πρώτα πλαίσια ελέγχου
Επιλέξτε τα δύο πρώτα πλαίσια ελέγχου για να διευκολύνετε την εκτέλεση σεναρίων Ruby.
Κάντε κλικ στο κουμπί «Εγκατάσταση» για να ξεκινήσει η εγκατάσταση. Θα πρέπει να δείτε το παρακάτω σχήμα όταν ολοκληρωθεί η εγκατάσταση.
Βήμα 5) Κάντε κλικ στο Τέλος
Μην καταργήσετε την επιλογή του πλαισίου ελέγχου που εγκαθιστά το MSYS2. Κάντε κλικ στο «Τέλος» για να ολοκληρώσετε την εγκατάσταση και θα εμφανιστεί ένα παράθυρο γραμμής εντολών που φαίνεται στην παρακάτω εικόνα.
Βήμα 6) Εγκαθιστά το MSYS2
Αυτό το βήμα εγκαθιστά το MSYS2, μια πλατφόρμα κτιρίου που διαθέτει έναν διαχειριστή πακέτων για εύκολη εγκατάσταση πακέτων Windows.
Πατήστε Enter για να εγκαταστήσετε όλα τα στοιχεία, καθώς όλα απαιτούνται για να έχετε ένα ομαλό περιβάλλον ανάπτυξης Ruby on Rails για να εργαστείτε Windows.
Εγκατάσταση σιδηροτροχιών
Θα πρέπει να έχετε εγκαταστήσει το Ruby από την προηγούμενη ενότητα και τώρα θα εγκαταστήσετε το Rails. Μπορείτε να εγκαταστήσετε το Rails χρησιμοποιώντας ένα πακέτο από RailsInstaller, αλλά το πρόβλημα με αυτό είναι ότι δεν λαμβάνετε την πιο πρόσφατη έκδοση των απαιτούμενων πακέτων.
Εάν έχετε ήδη εγκαταστήσει το πιο πρόσφατο Ruby και ένα βασικό σύνολο απαιτούμενων RubyGem και επεκτάσεων. Το μόνο που χρειάζεται να κάνετε τώρα είναι να εκτελέσετε την ακόλουθη εντολή στη γραμμή εντολών για να λάβετε το Rails στο σύστημά σας: 'gem install rails'.
Θα χρειαστεί επίσης να εγκαταστήσετε Node.js αν δεν το έχετε ήδη επειδή ορισμένες βιβλιοθήκες από τις οποίες εξαρτάται το Rails απαιτούν α Javascript χρόνο εκτέλεσης για να λειτουργήσει σωστά. Μπορείτε να λάβετε κόμβο στο https://nodejs.org.
Είναι μια πιο κοινή και προτιμώμενη προσέγγιση για την ανάπτυξη Windows. Η κοινότητα Rails χρησιμοποιεί α Windows Υποσύστημα για Linux που παρέχει ένα περιβάλλον GNU/Linux με εργαλεία γραμμής εντολών, βοηθητικά προγράμματα και κοινές εφαρμογές απευθείας στο Windows.
Εγκατάσταση του Ruby σε Mac
Το Mac σας έχει ήδη προεγκατεστημένο το Ruby σε αυτό. Ωστόσο, η προεγκατεστημένη έκδοση μπορεί να είναι παλιά και επομένως θα χρειαστεί να εγκαταστήσετε μια νέα/πιο πρόσφατη έκδοση.
Ο ευκολότερος τρόπος για να το κάνετε αυτό είναι χρησιμοποιώντας έναν διαχειριστή πακέτων όπως π.χ Homebrew. Ίσως χρειαστεί πρώτα να εγκαταστήσετε το Homebrew εκτελώντας την παρακάτω εντολή στο Terminal.
/usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)
Αυτό θα εμφανίσει μια προειδοποίηση και θα σας ζητήσει να εισαγάγετε τον κωδικό πρόσβασής σας. Εισαγάγετε τον κωδικό πρόσβασης Mac (δεν θα βλέπετε τους χαρακτήρες καθώς πληκτρολογείτε). Απλώς πατήστε «Enter» όταν ολοκληρώσετε την πληκτρολόγηση του κωδικού πρόσβασής σας. Στη συνέχεια, εκτελέστε αυτήν την απλή εντολή Homebrew για να εγκαταστήσετε το Ruby στο Mac σας.
brew install ruby
Και επίσης εκτελέστε αυτήν την εντολή:
echo "export PATH="/usr/local/bin:/usr/local/sbin:$PATH >> ~/.bash_profile
Για να ορίσετε αυτήν την εγκατάσταση Ruby ως την προεπιλεγμένη Ruby για εκτέλεση στο σύστημά σας και όχι την προεγκατεστημένη Ruby.
Για να επιβεβαιώσετε ότι η εγκατάσταση ήταν επιτυχής, μπορείτε να εκτελέσετε τα ακόλουθα στο Τερματικό
ruby --version
Αυτό θα εκτυπώσει τον αριθμό έκδοσης Ruby που έχετε εγκαταστήσει. Η έξοδος θα μοιάζει κάπως
ruby 2.6.0p0 (2018-12-25 revision 66547) [x86_64-darwin18]
Εγκατάσταση του Ruby σε Ubuntu (Linux)
Ο ευκολότερος τρόπος για να εγκαταστήσετε το Ruby στο δικό σας Ubuntu σύστημα γίνεται μέσω του διαχειριστή πακέτων apt. Πρέπει να εκτελέσετε τις ακόλουθες εντολές στο Terminal για να εγκαταστήσετε το πιο πρόσφατο Ruby από Ubuntu αποθετήρια.
- sudo apt ενημέρωση – Αυτό θα ενημερώσει την προεπιλογή Ubuntu αποθετήρια
- sudo apt install ruby-full – Θα κατεβάσει και θα εγκαταστήσει το πιο πρόσφατο Ruby
Για να επιβεβαιώσετε ότι η εγκατάσταση ήταν επιτυχής, μπορείτε να εκτελέσετε τα εξής 'ruby – έκδοση,' Αυτό θα εκτυπώσει την έκδοση Ruby που έχετε εγκαταστήσει.
Τοποθέτηση Rails σε Ubuntu (Linux)
Θα πρέπει να ακολουθήσετε τα παρακάτω βήματα για να εγκαταστήσετε με επιτυχία το Rails στον υπολογιστή σας Linux.
Βήμα 1) Ενημερώστε τον διαχειριστή πολύτιμων λίθων του υπολογιστή σας εκτελώντας "ενημέρωση πετραδιών - σύστημα" στο Terminal ή στη γραμμή εντολών.
Βήμα 2) τρέξιμο "ράγες εγκατάστασης πολύτιμων λίθων" για να εγκαταστήσετε την πιο πρόσφατη έκδοση του Rails στον υπολογιστή σας.
Βήμα 3) Θα πρέπει να εγκαταστήσετε το bundler gem για εύκολη διαχείριση της εξάρτησης της εφαρμογής Rails gem. Τρέξιμο "πακέτο εγκατάστασης πολύτιμων λίθων" για να το πάρει.
Δύο αρχές των Rails
Το Rails ακολουθεί βασικές αρχές σχεδιασμού λογισμικού και σας ενθαρρύνει να χρησιμοποιήσετε και αυτές τις αρχές.
Τα δύο πιο κοινά είναι:
- Don't Repeat Yourself (DRY) - αυτό σας κάνει να γράφετε συνοπτικό, συνεπή και διατηρήσιμο κώδικα.
- Convention over Configuration – Το Rails είναι προδιαμορφωμένο ώστε να χρησιμοποιεί λογικές προεπιλογές που ταιριάζουν στην πιο κοινή χρήση. Αυτό κάνει την ανάπτυξη της εφαρμογής σας γρήγορη και έχετε επίσης λιγότερο κώδικα για συντήρηση.
Ράγες – Δομές αρχείου έργου
Με το Rails τώρα εγκατεστημένο στο σύστημά σας, μπορείτε να δημιουργήσετε μια εφαρμογή Rails! Θα μάθουμε παραδείγματα Ruby on Rails και πώς να δημιουργήσουμε μια εφαρμογή λίστας Todo σε αυτό το σεμινάριο Ruby on Rails. Εκτελέστε την ακόλουθη εντολή 'rails new todo_app' στο Τερματικό σας για να δημιουργήσετε την εφαρμογή.
Αυτή η εντολή δημιουργεί έναν κατάλογο με όνομα 'todo_app' στον τρέχοντα κατάλογο με τη βασική δομή φακέλου μιας εφαρμογής Ιστού Rails, όπως φαίνεται στην παρακάτω εικόνα:
Θα περάσετε από τους κύριους καταλόγους σε αυτό το παράδειγμα Ruby on Rails.
app – Αυτός ο κατάλογος ομαδοποιεί χρησιμοποιώντας διαφορετικούς υποκαταλόγους για τη διεπαφή χρήστη/διάταξη (προβολές και βοηθούς), τον ελεγκτή (αρχεία ελεγκτών) και τα μοντέλα (λογική επιχείρησης/εφαρμογής).
εφαρμογή/ελεγκτές – Αυτός ο κατάλογος αποθηκεύει αρχεία ελεγκτή που χρησιμοποιούνται από τη Rails για τη διαχείριση αιτημάτων από τον πελάτη.
εφαρμογή/στοιχεία – Περιέχει στατικά αρχεία, κάτι που είναι απαραίτητο για το front-end της εφαρμογής ομαδοποιημένο σε φακέλους με βάση τον τύπο τους – JavaΓραφή αρχεία, εικόνες και φύλλα στυλ.
εφαρμογή/βοηθοί – Αυτός ο υποκατάλογος περιέχει βοηθητικές λειτουργίες που κάνουν το μοντέλο, την προβολή και τη λογική του ελεγκτή της εφαρμογής σας εστιασμένα, μικρά και ακατάστατα.
εφαρμογή/μοντέλα – Αυτό περιέχει αρχεία
που μοντελοποιούν τη βάση δεδομένων της εφαρμογής σας. Οι κατηγορίες μοντέλων κάνουν την εργασία με τη βάση δεδομένων πολύ εύκολη.
εφαρμογή/προβολές – Αυτό το πρότυπο/αρχεία διάταξης αναμονής με τα οποία αλληλεπιδρά ο χρήστης της εφαρμογής σας. Τα πρότυπα είναι ένας συνδυασμός HTML και δεδομένων από τη βάση δεδομένων.
κάδος - Περιέχει σενάρια Rails που ξεκινά την εφαρμογή σας. Μπορεί επίσης να περιλαμβάνει άλλα σενάρια που χρησιμοποιείτε για τη ρύθμιση και την αναβάθμιση της εφαρμογής.
Config - Αυτό κρατά αρχεία διαμόρφωσης – database.yml, περιβάλλον.rb, routes.rbκ.λπ. που πρέπει να εκτελεστεί η εφαρμογή σας.
DB - Αυτός ο κατάλογος περιέχει αρχεία/σενάρια που χρησιμοποιούνται για τη διαχείριση της βάσης δεδομένων της εφαρμογής σας.
lib - Αυτός ο κατάλογος περιέχει μια εκτεταμένη ενότητα για την εφαρμογή σας.
ημερολόγιο – Αυτό περιέχει αρχεία καταγραφής – server.log, development.log, test.log και production.log, κ.λπ., που χρησιμοποιούνται για τον εντοπισμό σφαλμάτων ή την παρακολούθηση της εφαρμογής σας.
ακροατήριο - Αυτός ο κατάλογος περιέχει στατικά αρχεία και μεταγλωττισμένα στοιχεία, όπως αρχεία HTML, Javascript αρχεία, εικόνες και φύλλα στυλ.
δοκιμή - Αυτός ο κατάλογος περιέχει δοκιμαστικά αρχεία που γράφετε για να ελέγξετε τη λειτουργικότητα της εφαρμογής σας.
tmp - Αυτός ο κατάλογος περιέχει προσωρινά αρχεία όπως αρχεία cache και pid.
Προμηθευτή - Αυτός ο κατάλογος περιέχει βιβλιοθήκες τρίτων.
Gemfile - Αυτό το αρχείο καθορίζει ποιες είναι οι βασικές απαιτήσεις σας για την εκτέλεση της εφαρμογής Ιστού σας. Μπορείτε να ομαδοποιήσετε τους πολύτιμους λίθους σε ανάπτυξη, δοκιμή ή παραγωγή και η Rails θα γνωρίζει πότε να συμπεριλάβει κάθε στολίδι.
Gemfile.lock – Σε αντίθεση με το Gemfile που αναφέρει ρητά τους πολύτιμους λίθους που θέλετε στην εφαρμογή σας, το Gemfile.lock περιέχει επιπλέον και άλλους πολύτιμους λίθους από τους οποίους εξαρτώνται αυτοί που καταχωρείτε στο Gemfile και στη συνέχεια εγκαθίστανται αυτόματα για να ικανοποιήσουν τις εξαρτήσεις.
Readme.md – Χρησιμοποιείτε αυτό το αρχείο για να μοιραστείτε βασικές λεπτομέρειες σχετικά με την εφαρμογή σας, όπως τι κάνει η εφαρμογή, πώς να εγκαταστήσετε και να εκτελέσετε την εφαρμογή.
Rakefile - Αυτό το αρχείο περιέχει διάφορους ορισμούς εργασιών rake, οι οποίοι βοηθούν στην αυτοματοποίηση των καθημερινών εργασιών διαχείρισης της εφαρμογής σας.
config.ru – Αυτό είναι ένα αρχείο διαμόρφωσης Rack που παρέχει μια διεπαφή στον διακομιστή ιστού για την εκκίνηση της εφαρμογής σας.
Αλλάξτε τον κατάλογο στο 'todo_app' κατάλογος Οι ράγες δημιουργούνται και εκτελούνται "διακομιστής σιδηροτροχιών" για να ξεκινήσετε την εφαρμογή. Τύπος localhost: 3000 στη γραμμή διευθύνσεων του προγράμματος περιήγησής σας, θα πρέπει να δείτε την παρακάτω εικόνα εάν όλα πήγαν καλά.
Αυτή είναι η προεπιλεγμένη αρχική σελίδα της εφαρμογής σας και θα την αλλάξετε στην επόμενη ενότητα αυτού του σεμιναρίου Ruby on Rails. Μπορείτε να σταματήσετε τον διακομιστή πατώντας 'Ctrl-C'.
Rails – Δημιουργία εντολών
Η εντολή Rails generate χρησιμοποιεί πρότυπα για να δημιουργήσει πολλά χρήσιμα πράγματα στην εφαρμογή σας. Μπορείτε να χρησιμοποιήσετε αυτές τις γεννήτριες για να εξοικονομήσετε πολύ χρόνο.
Βοηθά γράφοντας κώδικα boilerplate, κώδικα που είναι απαραίτητος για να λειτουργήσει η διαδικτυακή σας εφαρμογή. Μπορείτε να τρέξετε «παράγουν ράγες» από μόνη της στη γραμμή εντολών ή στο Terminal για να δείτε μια λίστα με τις διαθέσιμες γεννήτριες όπως φαίνεται παρακάτω:
Μπορείτε επίσης να τρέξετε «Οι ράγες παράγουν «εντολή» για να δείτε μια περιγραφή του τι κάνει η εντολή. Προσφέρει βολικές επιλογές που μπορούν να εκτελεστούν με το παράδειγμα εντολών και χρήσης. Το παρακάτω σχήμα δείχνει την έξοδο της εκτέλεσης"ελεγκτής παράγουν ράγες":
Θα χρησιμοποιήσετε την εντολή rails generate scaffold για να δημιουργήσετε αυτόματα το μοντέλο, την προβολή και τον ελεγκτή για την εφαρμογή λίστας εργασιών που κατασκευάζετε. Τρέξιμο' οι ράγες δημιουργούν ικρίωμα todo_list title:string description: text' στο Τερματικό σας (ελέγξτε ότι βρίσκεστε ακόμα στον κατάλογο todo_app).
Αυτό θα δημιουργήσει μια πλήρη διεπαφή ιστού CRUD (Δημιουργία, ανάγνωση, ενημέρωση και διαγραφή) για τον πίνακα TodoLists.
Μια άλλη χρήσιμη εντολή που πρέπει να γνωρίζετε είναι «οι ράγες καταστρέφουν», αντιστρέφει οτιδήποτε «Οι ράγες δημιουργούν…» κάνει.
Ράγες – δρομολόγηση
Το σύστημα δρομολόγησης Rails, rail router, χειρίζεται όλα τα εισερχόμενα αιτήματα στην εφαρμογή web σας. Αυτό το κάνει εξετάζοντας τη διεύθυνση URL των εισερχόμενων αιτημάτων και στη συνέχεια αντιστοιχίζει κάθε αίτημα στην ενέργεια του ελεγκτή που είναι υπεύθυνη για τον χειρισμό του, χρησιμοποιώντας ειδική σύνταξη που καθορίζεται στο αρχείο διαδρομών (config/routes.rb).
Το αρχείο διαδρομών βοηθά στον έλεγχο κάθε πτυχής διεύθυνσης URL της εφαρμογής Ιστού σας. Οι ράγες από προεπιλογή χρησιμοποιούν ένα σχέδιο RESTful που βασίζεται στο αρχιτεκτονικό στυλ REST, το οποίο παρέχει μια αντιστοίχιση μεταξύ ρημάτων HTTP και αιτημάτων (URL) σε ενέργειες ελεγκτή.
Το αρχείο διαδρομών δημιουργήθηκε όταν εκτελέσατε "Ράγες καινούργια" σε προηγούμενη ενότητα αυτού του σεμιναρίου. Συνεχίζοντας με την εφαρμογή Todo που δημιουργείτε, εκτελέστε τα εξής'rails db:migrate' (Θα μάθετε τι κάνει αυτό σύντομα)
Στη γραμμή εντολών σας, βεβαιωθείτε ότι βρίσκεστε ακόμα στη ρίζα της εφαρμογής (ο κατάλογος todo_app).
Στη συνέχεια, ξεκινήστε ξανά τον διακομιστή με "διακομιστής σιδηροτροχιών". Τύπος http://localhost:3000/todo_lists/
στο πρόγραμμα περιήγησής σας και πατήστε Enter. Θα πρέπει να επιστρέψετε μια ιστοσελίδα όπως φαίνεται στο παρακάτω σχήμα του παραδείγματος Ruby on Rails:
Αυτή είναι η προβολή λιστών Todo που δημιουργείται η εντολή scaffold και ελέγχεται από την ενέργεια ευρετηρίου του TodoListsController.
Συνεχίστε και προσθέστε μια λίστα εργασιών κάνοντας κλικ στη «Νέα λίστα εργασιών» στη σελίδα, θα πρέπει να λάβετε τη σελίδα όπως φαίνεται παρακάτω:
Σημειώστε ότι η διεύθυνση URL έχει αλλάξει σε http://localhost:3000/todo_lists/new
. Αυτή είναι η σελίδα για τη δημιουργία μιας νέας λίστας εργασιών και ελέγχεται από τη νέα μέθοδο/ενέργεια του TodoListsController.
Εισαγάγετε τον τίτλο και την περιγραφή της λίστας εργασιών στη φόρμα και κάντε κλικ στο κουμπί Δημιουργία λίστας εργασιών, η διεύθυνση URL θα πρέπει να αλλάξει σε http://localhost:3000/todo_lists/1
, φαίνεται στο παρακάτω σχήμα του παραδείγματος κώδικα Ruby on Rails:
Αυτή είναι η σελίδα εμφάνισης μιας λίστας εργασιών και ελέγχεται από τη μέθοδο/ενέργεια εμφάνισης του TodoListsController. Αν επιστρέψετε στο http://localhost:3000/todo_lists/
, θα πρέπει τώρα να δείτε το παρακάτω σχήμα με μια νέα λίστα εργασιών που έχει προστεθεί:
Το Rails μπόρεσε να αντιστοιχίσει τα διάφορα αιτήματα (URL) στην αντίστοιχη ενέργεια του TodoListsController χρησιμοποιώντας τον ορισμό διαδρομής στο config/routes.rb.
Αν ρίξετε μια ματιά σε αυτό το αρχείο, θα δείτε μια γραμμή 'πόροι: todo_lists', είναι ο προεπιλεγμένος τρόπος του Rails για τη σύνταξη ξεκούραστων διαδρομών. Αυτή η μεμονωμένη γραμμή δημιουργεί επτά διαδρομές που αντιστοιχίζονται όλες στον ελεγκτή TodoLists.
Κατά σύμβαση, η ενέργεια κάθε ελεγκτή αντιστοιχεί επίσης σε μια συγκεκριμένη λειτουργία CRUD (Δημιουργία, Ανάγνωση, Ενημέρωση και Διαγραφή) στη βάση δεδομένων.
Μπορείτε να τρέξετε «διαδρομές τσουγκράνας» στη γραμμή εντολών σας για να δείτε τις διάφορες διαδρομές που είναι διαθέσιμες στην εφαρμογή σας. Το παρακάτω σχήμα δείχνει την έξοδο της εκτέλεσης "διαδρομές σιδηροδρόμου" στη γραμμή εντολών/τερματικό σας.
Ράγες – θέα
Το επίπεδο προβολής είναι ένα από τα στοιχεία του παραδείγματος MVC και είναι υπεύθυνο για τη δημιουργία απόκρισης HTML για κάθε αίτημα στην εφαρμογή σας. Οι ράγες από προεπιλογή χρησιμοποιούν το ERB (Embedded Ruby) το οποίο είναι ένα ισχυρό σύστημα προτύπων για το Ruby.
Το ERB κάνει τα πρότυπα γραφής εύκολα και διατηρήσιμα συνδυάζοντας απλό κείμενο με κώδικα Ruby για αντικατάσταση μεταβλητών και έλεγχο ροής. Ένα πρότυπο ERB έχει επέκταση .html, .erb ή .erb.
Θα χρησιμοποιήσετε ως επί το πλείστον έναν συνδυασμό μόνο δύο δεικτών ετικετών, καθένας από τους οποίους προκαλεί την επεξεργασία και τον χειρισμό του ενσωματωμένου κώδικα με συγκεκριμένο τρόπο.
Μια ετικέτα με το σύμβολο του ίσου '<%= %>' υποδεικνύει ότι ο ενσωματωμένος κώδικας είναι μια έκφραση και ότι το αποτέλεσμα του κώδικα θα πρέπει να αντικατασταθεί από το πρόγραμμα απόδοσης όταν αποδίδει το πρότυπο.
Η άλλη ετικέτα χωρίς σύμβολο ίσον "<% %>" υποδεικνύει στον αποδέκτη ότι το αποτέλεσμα του κώδικα δεν πρέπει να αντικατασταθεί/εκτυπωθεί όταν αποδίδει το πρότυπο.
Κάθε ελεγκτής στην εφαρμογή Rails έχει έναν αντίστοιχο υποκατάλογο εφαρμογή/προβολές, και κάθε ενέργεια/μέθοδος σε έναν ελεγκτή έχει ένα αντίστοιχο αρχείο .html και .erb σε αυτόν τον κατάλογο.
Ρίξτε μια ματιά στην εφαρμογή/προβολές της εφαρμογής todo που δημιουργείτε. Θα βρείτε έναν υποκατάλογο με το όνομα 'todo_lists' μέσα σε αυτόν τον υποκατάλογο .html.erb αρχεία με ονόματα που αντιστοιχούν στις ενέργειες/μεθόδους στο TodoLists ελεγκτή.
Rails – ActiveRecord, Active Record Pattern και ORM
Το ActiveRecord είναι η Ruby υλοποίηση του μοτίβου Active Record, το οποίο είναι ένα απλό μοτίβο όπου μια κλάση αντιπροσωπεύει έναν πίνακα και μια παρουσία της κλάσης αντιπροσωπεύει μια σειρά σε αυτήν την κλάση.
Το ActiveRecord αναφέρεται ευρέως ως ORM (Object Relational Mapping), μια τεχνική που σας επιτρέπει να διαχειρίζεστε τη βάση δεδομένων σας χρησιμοποιώντας μια γλώσσα με την οποία νιώθετε πιο άνετα. Είναι αγνωστικιστής βάσης δεδομένων, επομένως μπορείτε εύκολα να κάνετε εναλλαγή μεταξύ βάσεων δεδομένων (για παράδειγμα SQLite, MySQL, PostgreSQL, SQLServer, Oracle, και τα λοιπά.). Αυτή η σουίτα περισσότερο για την απαίτηση της εφαρμογής σας με τον ίδιο κωδικό/λογική.
Επομένως, εάν θέλετε να λάβετε έναν πίνακα που περιέχει μια λίστα με όλες τις λίστες εργασιών στην εφαρμογή σας, αντί να γράψετε κώδικα για να ξεκινήσετε μια σύνδεση με τη βάση δεδομένων, κάντε ένα είδος ερωτήματος SQL SELECT και μετατρέψτε αυτά τα αποτελέσματα σε πίνακας.
Για αυτό, απλά πρέπει να πληκτρολογήσετε "TodoList.all" και το Active Record σάς δίνει τον πίνακα γεμάτο με αντικείμενα TodoList με τα οποία μπορείτε να παίξετε όπως θέλετε.
Το μόνο που χρειάζεται να κάνετε είναι να ρυθμίσετε τη σωστή διαμόρφωση config/database.yml, και το Active Record θα επεξεργαστεί όλες τις διαφορές μεταξύ των διαφόρων συστημάτων βάσης δεδομένων. Έτσι, όταν αλλάζετε από το ένα στο άλλο, δεν χρειάζεται να το σκέφτεστε.
Εστιάζετε στη σύνταξη κώδικα για την εφαρμογή σας και το Active Record θα σκεφτεί τις λεπτομέρειες χαμηλού επιπέδου για τη σύνδεσή σας στη βάση δεδομένων σας. Το Active Record χρησιμοποιεί συμβάσεις ονομασίας για να δημιουργήσει την αντιστοίχιση μεταξύ μοντέλων και πινάκων βάσης δεδομένων.
Οι ράγες πολλαπλασιάζουν τα ονόματα κλάσεων μοντέλων για να βρείτε τον αντίστοιχο πίνακα βάσης δεδομένων. Έτσι, για μια κλάση TodoList, το ActiveRecord θα δημιουργήσει έναν πίνακα βάσης δεδομένων που ονομάζεται TodoLists.
Ράγες – Μετακινήσεις
Η μετεγκατάσταση Rails είναι απλώς μια δέσμη ενεργειών που χρησιμοποιείτε για να επεξεργαστείτε τη βάση δεδομένων της εφαρμογής σας. Χρησιμοποιείται για τη ρύθμιση ή την αλλαγή της βάσης δεδομένων σας και αποφεύγει τη μη αυτόματη εγγραφή κώδικα SQL για να γίνει αυτό.
Χρησιμοποιεί το Ruby για να ορίσει αλλαγές στο σχήμα της βάσης δεδομένων και καθιστά δυνατή τη χρήση ελέγχου έκδοσης για να διατηρείται η βάση δεδομένων σας συγχρονισμένη.
Το Rails Migrations χρησιμοποιεί μια ειδική γλώσσα Ruby Domain (DSL). Αυτό λειτουργεί ως αφαίρεση και καθιστά δυνατή τη χρήση ή την αλλαγή της μηχανής της βάσης δεδομένων σας με βάση τις απαιτήσεις σας.
Μπορούν να κοινοποιηθούν με οποιονδήποτε εργάζεται στην εφαρμογή και μπορούν επίσης να επαναφερθούν για να αναιρέσετε τυχόν αλλαγές στη βάση δεδομένων. Αυτός είναι ένας μηχανισμός υψηλής ασφάλειας, καθώς δεν χρειάζεται να ενοχλείτε να προκαλέσετε μόνιμη ζημιά στη βάση δεδομένων σας.
Rails – Ενώσεις ActiveRecord
Μια σύνδεση μεταξύ δύο μοντέλων ActiveRecord είναι γνωστή ως συσχέτιση. Η συσχέτιση διευκολύνει πολύ την εκτέλεση πράξεων στις διαφορετικές εγγραφές στον κώδικά σας. Μπορεί να χωριστεί σε τέσσερις κατηγορίες: -
One to One: – Αυτό υποδηλώνει ότι μια εγγραφή περιέχει ακριβώς ένα παράδειγμα ενός άλλου μοντέλου. Ένα καλό παράδειγμα είναι το προφίλ χρήστη. Ένας χρήστης έχει μόνο ένα προφίλ. Χρησιμοποιεί έχει ένα λέξη-κλειδί.
Ένα έως πολλά: – Αυτή είναι η πιο κοινή συσχέτιση και υποδηλώνει ότι ένα μοντέλο έχει μηδέν ή περισσότερες παρουσίες ενός άλλου μοντέλου. Η χρήση σας έχει ένα _πολλά λέξη-κλειδί για να δηλώσετε αυτόν τον συσχετισμό.
Πολλοί σε Πολλοί: – Αυτή η συσχέτιση είναι λίγο πιο περίπλοκη και το ActiveRecord παρέχει δύο τρόπους χειρισμού. Χρησιμοποιώντας την έχει_και_ανήκει_σε_πολλά και έχει πολλά, που σας δίνει πρόσβαση στη σχέση που ορίζεται σε ξεχωριστό πίνακα.
Πολύμορφο Ένα προς πολλά:- Αυτή είναι μια πιο προηγμένη ένωση που είναι διαθέσιμη για εσάς στο Rails. Μπορείτε να το χρησιμοποιήσετε για να ορίσετε ένα μοντέλο που μπορεί να ανήκει σε πολλά διαφορετικά μοντέλα σε μία μόνο συσχέτιση.
Rails – Επικυρώσεις ActiveRecord
Η επικύρωση βοηθά να διασφαλίσετε ότι έχετε σωστά δεδομένα, επειδή η εργασία με λάθος δεδομένα είναι απαίσια και μπορεί να σας κοστίσει τα χρήματα και την επιχείρησή σας.
Η επικύρωση παρέχει επίσης ένα επιπλέον επίπεδο ασφάλειας για την εφαρμογή σας έναντι κακόβουλων χρηστών από το να αποκτήσουν πρόσβαση σε πληροφορίες στη βάση δεδομένων σας. Το Rails σάς προσφέρει ένα ωραίο API βοηθών επικύρωσης στο ActiveRecord για να διατηρείτε τη βάση δεδομένων σας καθαρή, ασφαλή και χωρίς σφάλματα.
Οι επικυρώσεις ActiveRecord εκτελούνται σε αντικείμενα μοντέλου πριν από την αποθήκευση στη βάση δεδομένων, καθιστώντας τα πιο αξιόπιστα και επίσης την καλύτερη πρακτική που πρέπει να ακολουθήσετε για τη δημιουργία της εφαρμογής σας.
Οι ακόλουθες μέθοδοι ActiveRecord προκαλούν επικυρώσεις όταν χρησιμοποιούνται ή καλούνται σε αντικείμενα μοντέλου – δημιουργία, δημιουργία!, αποθήκευση, αποθήκευση!, ενημέρωση και ενημέρωση!. Αυτοί με χτύπημα (δημιουργία!, αποθήκευση! και ενημέρωση!) δημιουργήστε μια εξαίρεση εάν μια εγγραφή είναι άκυρη ενώ δεν είναι.
Οι πιο συνηθισμένοι βοηθοί επικύρωσης ActiveRecord που έχετε στη διάθεσή σας είναι:
Επιβεβαίωση:– Αυτός ο βοηθός επικύρωσης είναι χρήσιμος για την επικύρωση δύο πεδίων που έχουν την ίδια καταχώρηση. π.χ. επιβεβαίωση κωδικού πρόσβασης και κωδικού πρόσβασης, χρησιμοποιείται σε συνδυασμό με τον βοηθό επικύρωσης παρουσίας.
Παρουσία:– Αυτό ελέγχει ότι το πεδίο δεν είναι κενό.
μοναδικότητα: εξασφαλίζει μοναδική τιμή για ένα πεδίο, π.χ. όνομα χρήστη
Μήκος:- Για να επιβάλετε ένα όριο στο μήκος χαρακτήρων ενός πεδίου
Μπορείτε επίσης να δημιουργήσετε την προσαρμοσμένη επικύρωση χρησιμοποιώντας τη μέθοδο επικύρωσης και μεταβιβάζοντάς της το όνομα της προσαρμοσμένης μεθόδου επικύρωσης.
Μπορείτε να ελέγξετε το μοντέλο σφάλμα αντίρρηση για να μάθετε γιατί μια επικύρωση. Ας ελπίσουμε ότι έχετε κάποιες ιδέες για να κάνετε την εφαρμογή σας πιο περιορισμένη και πιο ασφαλή, ώστε να επιτρέπετε μόνο ασφαλή δεδομένα στη βάση δεδομένων σας.
Ράγες – ActionController
Ο ελεγκτής Rails είναι το κέντρο της διαδικτυακής εφαρμογής σας. Διευκολύνει και συντονίζει την επικοινωνία μεταξύ του χρήστη, των μοντέλων και των προβολών.
Οι κλάσεις ελεγκτών σας κληρονομούνται από τον ApplicationController, ο οποίος περιέχει κώδικα που μπορεί να εκτελεστεί σε όλους τους άλλους ελεγκτές και κληρονομείται από την κλάση ActionController.
Ο ελεγκτής παρέχει τα ακόλουθα στην εφαρμογή σας:
- Δρομολογεί εξωτερικά αιτήματα σε εσωτερικές ενέργειες
- Καταφέρνει να κάνει cache, δίνοντας ώθηση απόδοσης στην εφαρμογή σας
- Διαχειρίζεται βοηθητικές μεθόδους που επεκτείνουν τις δυνατότητες προτύπων προβολής. Διαχειρίζεται επίσης τις περιόδους σύνδεσης των χρηστών, δίνοντάς τους μια ομαλή εμπειρία χρήσης της εφαρμογής σας.
Ράγες – Διαμορφώσεις
Μπορείτε να διαμορφώσετε τα διάφορα στοιχεία, όπως αρχικοποιητές, στοιχεία, γεννήτριες, ενδιάμεσα προγράμματα, κ.λπ. Χρησιμοποιώντας τους αρχικοποιητές της εφαρμογής Rails και τα αρχεία διαμόρφωσης στον κατάλογο ρυθμίσεων. Αρχεία όπως config/application.rb, config/environments/development.rb και config/environments/test.rb κ.λπ. Μπορείτε επίσης να διαμορφώσετε προσαρμοσμένες ρυθμίσεις για την εφαρμογή σας.
Ράγες – Εντοπισμός σφαλμάτων
Καθώς δημιουργείτε την εφαρμογή σας, θα έρθει μια στιγμή που θα χρειαστεί/πρέπει να διορθώσετε τον κωδικό σας. Οι ράγες το κάνουν εύκολο χρησιμοποιώντας το στολίδι bybug. Μπορείτε να ξεκινήσετε μια περίοδο λειτουργίας εντοπισμού σφαλμάτων βάζοντας τη λέξη-κλειδί «byebeg» οπουδήποτε στον κώδικα της εφαρμογής σας.
Αυτό θα σταματήσει προσωρινά την εκτέλεση σε εκείνο το σημείο. Το byebug gem σας δίνει πολλές εντολές για χρήση. Τα πιο χρήσιμα είναι:
- επόμενη: εντολή που σας επιτρέπει να μεταβείτε στην επόμενη γραμμή κώδικα, παρακάμπτοντας όλες τις μεθόδους που επικαλούνται κατά την εκτέλεση της τρέχουσας γραμμής.
- βήμα: αυτή είναι παρόμοια με την εντολή "next", αλλά θα σας κάνει να μπείτε σε κάθε κλήση.
- σπάσει: διακόπτει την εκτέλεση του κώδικα.
- ΣΥΝΕΧΕΙΑ συνεχίζει τον κώδικα εκτέλεσης.
Υπάρχουν και άλλα διαθέσιμα πετράδια εντοπισμού σφαλμάτων, όπως το 'pry', και όλα παρέχουν παρόμοιες λειτουργίες αλλά ελαφρώς διαφορετική σύνταξη. Τα πετράδια εντοπισμού σφαλμάτων δεν θα πρέπει να χρησιμοποιούνται στην παραγωγή, καθώς αυτό εγκυμονεί κινδύνους για την εφαρμογή σας και κακή εμπειρία για τους χρήστες της εφαρμογής σας.
Υπάρχουν αρχεία καταγραφής που μπορείτε να ελέγξετε για σφάλματα στην παραγωγή και να τα χειριστείτε. Επίσης, θα πρέπει να ακολουθείτε μια προσέγγιση TDD (Test-driven development) κατά την ανάπτυξη της εφαρμογής σας για να διασφαλίσετε ότι όλα λειτουργούν καλά πριν από την ανάπτυξη στην παραγωγή.
Σύνοψη
- Η Ruby είναι μια καθαρά αντικειμενοστραφής γλώσσα προγραμματισμού
- Το Ruby έχει μια κομψή σύνταξη που διαβάζεται και γράφεται εύκολα.
- Το Rails είναι ένα πλαίσιο ανάπτυξης, γραμμένο σε Ruby, για τη δημιουργία διαδικτυακών εφαρμογών
- Η διαδικασία εγκατάστασης θα εξαρτηθεί από το λειτουργικό σας σύστημα.
- Το Rails είναι συσκευασμένο ως κόσμημα Ruby και μπορείτε να το χρησιμοποιήσετε για να δημιουργήσετε μια ποικιλία εφαρμογών.
- Θα δημιουργήσετε μια εφαρμογή λίστας εργασιών σε αυτό το σεμινάριο, εκτελέστε το ακόλουθο κείμενο "rails netoda'p'p'p" στο τερματικό σας για να δημιουργήσετε την εφαρμογή.
- Η εντολή Rails generate χρησιμοποιεί πρότυπα για να δημιουργήσει πολλά χρήσιμα πράγματα στην εφαρμογή σας.
- Το σύστημα δρομολόγησης Rails, rails router σάς βοηθά να χειρίζεστε όλα τα εισερχόμενα αιτήματα στην εφαρμογή web σας.
- Το επίπεδο προβολής είναι ένα από τα στοιχεία του παραδείγματος MVC και είναι υπεύθυνο για τη δημιουργία απόκρισης HTML για κάθε αίτημα στην εφαρμογή σας.
- Το ActiveRecord είναι η Ruby υλοποίηση του μοτίβου Active Record.
- Η μετεγκατάσταση Rails είναι απλώς μια δέσμη ενεργειών που χρησιμοποιείτε για να επεξεργαστείτε τη βάση δεδομένων της εφαρμογής σας.
- Μια σύνδεση μεταξύ δύο μοντέλων ActiveRecord είναι γνωστή ως συσχέτιση.
- Η επικύρωση βοηθά να διασφαλίσετε ότι έχετε σωστά δεδομένα, επειδή η εργασία με λάθος δεδομένα είναι απαίσια και μπορεί να σας κοστίσει τα χρήματα και την επιχείρησή σας.
- Ο ελεγκτής Rails σάς βοηθά να διευκολύνετε και να συντονίσετε την επικοινωνία μεταξύ του χρήστη, των μοντέλων και των προβολών.
- Το Rail σάς βοηθά να διαμορφώσετε τα διάφορα στοιχεία, όπως αρχικοποιητές, στοιχεία ενεργητικού, γεννήτριες, ενδιάμεσα προγράμματα κ.λπ.