Εκμάθηση Ruby on Rails

⚡ Έξυπνη Σύνοψη

Το Ruby on Rails Tutorial παρουσιάζει το πλαίσιο ιστού ανοιχτού κώδικα γραμμένο σε Ruby που υποστηρίζει τα Airbnb, GitHub και Shopify. Η αναλυτική παρουσίαση καλύπτει την εγκατάσταση σε Windows, Mac και Linux, γεννήτριες Rails, δρομολόγηση, προβολές, ActiveRecord, επικυρώσεις και εντοπισμός σφαλμάτων.

  • 💎 Γλώσσα και Πλαίσιο: Η Ruby είναι μια δυναμική, αντικειμενοστρεφής γλώσσα σχεδιασμένη για αναγνωσιμότητα και το Rails είναι το full-stack MVC framework που βασίζεται σε αυτήν για αποστολή.ping εφαρμογές ιστού γρήγορα.
  • Ρύθμιση σε διάφορες πλατφόρμες: Εγκαταστήστε το Ruby και το Rails στο Windows χρησιμοποιώντας το RubyInstaller, σε Mac μέσω Homebrew και σε Ubuntu Linux μέσω apt ακολουθούμενο από γραμμές εγκατάστασης gem.
  • Κατευθυντήριες αρχές: Τα rails επιβάλλουν τις αρχές "Μην επαναλαμβάνετε τον εαυτό σας" και "Σύμβαση" έναντι της διαμόρφωσης, ώστε οι ομάδες να γράφουν λιγότερο τυποποιημένα και να ακολουθούν προβλέψιμη δομή έργου.
  • ⚙️ Generators και Δρομολόγηση: Χρησιμοποιήστε ράγες για να δημιουργήσετε ικρίωμα για να δημιουργήσετε ικρίωμα κώδικα CRUD και, στη συνέχεια, βασιστείτε στο config/routes.rb για να αντιστοιχίσετε το RESTful. URLs σε ενέργειες ελεγκτή σε δευτερόλεπτα.
  • 🗄️ Ισχύς ActiveRecord: Το ActiveRecord αντιστοιχίζει κλάσεις Ruby σε πίνακες βάσης δεδομένων, υποστηρίζει μετεγκαταστάσεις, συσχετίσεις και επικυρώσεις και διατηρεί τα δεδομένα συνεπή σε όλα τα περιβάλλοντα.

Εκμάθηση Ruby on Rails

Τι είναι η Ruby;

Ruby είναι μια υψηλού επιπέδου, ερμηνευμένη, αντικειμενοστρεφής γλώσσα προγραμματισμού. Είναι μια δυναμική γλώσσα ανοιχτού κώδικα με μια μεγάλη κοινότητα πίσω της. Η Ruby σχεδιάστηκε για απλότητα και παραγωγικότητα. Ενθαρρύνει τη συγγραφή κώδικα λογισμικού που δίνει προτεραιότητα στον άνθρωπο και τον υπολογιστή. Ο Yukihiro Matsumoto δημιούργησε την Ruby στην Ιαπωνία το 1995.

Τι είναι το Rails;

Κάγκελα είναι ένα πλαίσιο ανάπτυξης γραμμένο σε Ruby για την κατασκευή διαδικτυακών εφαρμογών. Δημιουργήθηκε ως βάση της εφαρμογής Basecamp και στη συνέχεια κυκλοφόρησε ως λογισμικό ανοιχτού κώδικα το 2004. Το Rails προσφέρει πολλά ενσωματωμένα τυπικά χαρακτηριστικά και λειτουργίες, γεγονός που το καθιστά κατάλληλη επιλογή για πρωτότυπα MVP.ping και ταχεία ανάπτυξη προϊόντων.

Το Rails δημιουργήθηκε από τον David Heinemeier Hansson, γνωστό ως DHH. Είναι ένα από τα πιο σημαντικά και δημοφιλή εργαλεία για τη δημιουργία διαδικτυακών εφαρμογών. Χρησιμοποιείται από μεγάλους ιστότοπους όπως το Airbnb, το GitHub και το Shopify.

Γιατί Rails;

Πριν εγκαταστήσετε την αλυσίδα εργαλείων, είναι χρήσιμο να κατανοήσετε γιατί οι ράγες παραμένουν μια δημοφιλής επιλογή για πλοία.ping εφαρμογές ιστού γρήγορα.

  • Το Rails είναι συσκευασμένο ως ένα πολύτιμο λίθος Ruby και μπορείτε να το χρησιμοποιήσετε για να δημιουργήσετε μια μεγάλη ποικιλία εφαρμογών.
  • Σας επιτρέπει να δημιουργείτε τακτικές εφαρμογές ιστού, ιστότοπους ηλεκτρονικού εμπορίου, συστήματα διαχείρισης περιεχομένου και πολλά άλλα.
  • Το Rails είναι ένα full-stack framework που περιλαμβάνει όλα όσα χρειάζεστε για να δημιουργήσετε μια εφαρμογή web που βασίζεται σε βάση δεδομένων χρησιμοποιώντας το μοτίβο Model-View-Controller (MVC).
  • Όλα τα επίπεδα έχουν σχεδιαστεί για να λειτουργούν άψογα μεταξύ τους, επομένως τα έργα Rails συνήθως χρειάζονται λιγότερες γραμμές κώδικα από τα αντίστοιχα έργα σε άλλα frameworks.

Πώς να κατεβάσετε και να εγκαταστήσετε το 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) Αποδεχτείτε την άδεια χρήσης.
Επιλέξτε το κουμπί επιλογής «Αποδέχομαι την άδεια χρήσης» και κάντε κλικ στο κουμπί «Επόμενο». Θα πρέπει να δείτε την παρακάτω οθόνη.

Λήψη και εγκατάσταση του Ruby στο Windows

Βήμα 4) Επιλέξτε τα δύο πρώτα πλαίσια ελέγχου.
Επιλέξτε τα δύο πρώτα πλαίσια ελέγχου για να διευκολύνετε την εκτέλεση σεναρίων Ruby.

Κάντε κλικ στο κουμπί «Εγκατάσταση» για να ξεκινήσει η εγκατάσταση. Θα πρέπει να δείτε την παρακάτω οθόνη όταν ολοκληρωθεί.

Λήψη και εγκατάσταση του Ruby στο Windows

Βήμα 5) Κάντε κλικ στο Τέλος.
Μην καταργήσετε την επιλογή που εγκαθιστά το MSYS2. Κάντε κλικ στο "Τέλος" για να ολοκληρώσετε την εγκατάσταση. Ανοίγει ένα παράθυρο γραμμής εντολών, όπως φαίνεται παρακάτω.

Λήψη και εγκατάσταση του Ruby στο Windows

Βήμα 6) Εγκαταστήστε το MSYS2.
Αυτό το βήμα εγκαθιστά το MSYS2, μια πλατφόρμα δημιουργίας που διαθέτει έναν διαχειριστή πακέτων για εύκολη εγκατάσταση πακέτων. Windows.

Πατήστε Enter για να εγκαταστήσετε όλα τα στοιχεία, καθώς όλα είναι απαραίτητα για ένα ομαλό περιβάλλον ανάπτυξης Ruby on Rails. Windows.

Λήψη και εγκατάσταση του Ruby στο Windows

Εγκατάσταση σιδηροτροχιών

Θα πρέπει να έχετε εγκατεστημένο το Ruby από την προηγούμενη ενότητα. Στη συνέχεια, εγκαταστήστε το Rails. Μπορείτε να εγκαταστήσετε το Rails χρησιμοποιώντας ένα πακέτο από το RailsInstaller, αλλά το πακέτο συχνά δεν παρέχει την πιο πρόσφατη έκδοση κάθε απαιτούμενης εξάρτησης.

Εάν έχετε ήδη εγκατεστημένη την πιο πρόσφατη έκδοση του Ruby και τα βασικά RubyGems και τις επεκτάσεις, απλώς εκτελέστε την ακόλουθη εντολή στη γραμμή εντολών για να εγκαταστήσετε το Rails στο σύστημά σας: gem install rails.

Θα χρειαστεί επίσης να εγκαταστήσετε Node.js αν δεν το έχετε ήδη, επειδή ορισμένες βιβλιοθήκες στις οποίες βασίζεται το Rails απαιτούν JavaΣωστή λειτουργία του χρόνου εκτέλεσης του σεναρίου. Αποκτήστε το Node στη διεύθυνση https://nodejs.org.

Μια πιο κοινή και προτιμώμενη προσέγγιση Windows είναι να χρησιμοποιήσετε το Windows Υποσύστημα για Linux. Παρέχει ένα περιβάλλον GNU/Linux με εργαλεία γραμμής εντολών, βοηθητικά προγράμματα και κοινές εφαρμογές απευθείας μέσα. Windows.

Εγκατάσταση του Ruby σε Mac

Ο Mac σας έχει ήδη προεγκατεστημένη την Ruby. Ωστόσο, η προεγκατεστημένη έκδοση είναι συχνά παλιά, επομένως θα πρέπει να εγκαταστήσετε μια νεότερη έκδοση.

Ο ευκολότερος τρόπος για να το κάνετε αυτό είναι να χρησιμοποιήσετε έναν διαχειριστή πακέτων όπως HomebrewΜπορεί πρώτα να χρειαστεί να εγκαταστήσετε το Homebrew εκτελώντας την παρακάτω εντολή στο τερματικό.

/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. Εκτελέστε τις ακόλουθες εντολές στο τερματικό για να εγκαταστήσετε την πιο πρόσφατη έκδοση του Ruby από το Ubuntu αποθετήρια.

  • sudo apt update – Αυτό ενημερώνει την προεπιλεγμένη τιμή Ubuntu αποθετήρια.
  • sudo apt εγκατάσταση ruby-full – Αυτό κατεβάζει και εγκαθιστά την πιο πρόσφατη έκδοση του Ruby.

Για να επιβεβαιώσετε την εγκατάσταση, εκτελέστε ρουμπίνι –έκδοσηΑυτό εκτυπώνει την έκδοση Ruby που έχετε εγκαταστήσει.

Τοποθέτηση Rails σε Ubuntu (Linux)

Ακολουθήστε τα παρακάτω βήματα για να εγκαταστήσετε το Rails στο μηχάνημά σας Linux.

Βήμα 1) Ενημερώστε τον διαχειριστή πολύτιμων λίθων σας εκτελώντας ενημέρωση gem – σύστημα στο τερματικό ή στη γραμμή εντολών.

Βήμα 2) τρέξιμο ράγες εγκατάστασης πολύτιμων λίθων για να εγκαταστήσετε την πιο πρόσφατη έκδοση του Rails στον υπολογιστή σας.

Βήμα 3) Εγκαταστήστε το bundler gem για εύκολη διαχείριση εξαρτήσεων gem εφαρμογών Rails. Εκτέλεση gem εγκατάστασης bundler.

Δύο Αρχές των Σιδηροτροχιών

Το Rails ακολουθεί βασικές αρχές σχεδιασμού λογισμικού και σας ενθαρρύνει να τις χρησιμοποιήσετε κι εσείς.

Τα δύο πιο κοινά είναι:

  • Μην επαναλαμβάνετε τον εαυτό σας (ΣΤΕΓΝΟ) – αυτό οδηγεί σε συνοπτικό, συνεπή και συντηρήσιμο κώδικα.
  • Σύμβαση σχετικά με τη διαμόρφωση – Το Rails είναι προρυθμισμένο με λογικές προεπιλογές που ταιριάζουν στην πιο συνηθισμένη χρήση. Αυτό κάνει την ανάπτυξη εφαρμογών γρήγορη και σας αφήνει με λιγότερο κώδικα προς συντήρηση.

Ράγες – Δομές αρχείου έργου

Έχοντας εγκατεστημένο το Rails στο σύστημά σας, δημιουργήστε μια εφαρμογή Rails. Οι επόμενες ενότητες παρουσιάζουν ένα παράδειγμα Ruby on Rails δημιουργώντας μια εφαρμογή λίστας υποχρεώσεων. Εκτελέστε την ακόλουθη εντολή στο τερματικό σας για να δημιουργήσετε την εφαρμογή:

rails new todo_app

Αυτή η εντολή δημιουργεί έναν κατάλογο με όνομα εφαρμογή_εργασίας στον τρέχοντα κατάλογο με τη βασική δομή φακέλων μιας διαδικτυακής εφαρμογής Rails, όπως φαίνεται παρακάτω.

Ράγες – Δομές αρχείου έργου

Ακολουθούν οι κύριοι κατάλογοι που δημιουργήθηκαν για το έργο:

app – ομαδοποιεί υποκαταλόγους για το UI/διάταξη (προβολές και βοηθοί), τον ελεγκτή (αρχεία ελεγκτών) και τα μοντέλα (λογική επιχειρήσεων/εφαρμογών).

εφαρμογή/ελεγκτές – αποθηκεύει αρχεία ελεγκτών που χρησιμοποιούνται από το Rails για τη διαχείριση αιτημάτων από τον πελάτη.

εφαρμογή/στοιχεία – περιέχει στατικά αρχεία που απαιτούνται από το front-end της εφαρμογής, ομαδοποιημένα κατά τύπο: JavaΓραφή αρχεία, εικόνες και φύλλα στυλ.

εφαρμογή/βοηθοί – περιέχει βοηθητικές συναρτήσεις που διατηρούν το μοντέλο εφαρμογής, την προβολή και τη λογική του ελεγκτή σας εστιασμένο, μικρό και τακτοποιημένο.

εφαρμογή/μοντέλα – περιέχει αρχεία που μοντελοποιούν τη βάση δεδομένων της εφαρμογής σας. Οι κλάσεις μοντέλων κάνουν την εργασία με τη βάση δεδομένων πολύ εύκολη.

εφαρμογή/προβολές – περιέχει τα αρχεία προτύπων/διατάξεων με τα οποία αλληλεπιδρά ο χρήστης της εφαρμογής σας. Τα πρότυπα συνδυάζουν HTML με δεδομένα από τη βάση δεδομένων.

bin – περιέχει σενάρια Rails που ξεκινούν την εφαρμογή σας. Μπορεί επίσης να περιλαμβάνει άλλα σενάρια που χρησιμοποιείτε για να ρυθμίσετε και να αναβαθμίσετε την εφαρμογή.

config – περιέχει αρχεία διαμόρφωσης όπως database.yml, περιβάλλον.rb, routes.rb, κ.λπ., που χρειάζεται η εφαρμογή σας για να εκτελεστεί.

db – περιέχει αρχεία και σενάρια που χρησιμοποιούνται για τη διαχείριση της βάσης δεδομένων της εφαρμογής σας.

lib – περιέχει εκτεταμένες ενότητες για την εφαρμογή σας.

κούτσουρο – περιέχει αρχεία καταγραφής όπως server.log, development.log, test.log και production.log, που χρησιμοποιείται για τον εντοπισμό σφαλμάτων ή την παρακολούθηση της εφαρμογής σας.

δημόσιο – περιέχει στατικά αρχεία και μεταγλωττισμένα στοιχεία, όπως αρχεία HTML, JavaΑρχεία σεναρίων, εικόνες και φύλλα στυλ.

δοκιμή – περιέχει αρχεία δοκιμών που γράφετε για να δοκιμάσετε τη λειτουργικότητα της εφαρμογής σας.

tmp – περιέχει προσωρινά αρχεία όπως αρχεία cache και pid.

πάροχος υπηρεσιών – περιέχει βιβλιοθήκες τρίτων.

gemfile – καθορίζει τις βασικές απαιτήσεις gem για την εκτέλεση της διαδικτυακής σας εφαρμογής. Μπορείτε να ομαδοποιήσετε τα gem σε ανάπτυξη, δοκιμή ή παραγωγή και το Rails θα γνωρίζει πότε να συμπεριλάβει κάθε gem.

Gemfile.lock – σε αντίθεση με το Gemfile, το οποίο παραθέτει ρητά τους πολύτιμους λίθους που θέλετε στην εφαρμογή σας, το Gemfile.lock περιέχει επιπλέον και άλλους πολύτιμους λίθους από τους οποίους εξαρτώνται αυτοί που αναφέρονται στο Gemfile. Αυτοί εγκαθίστανται αυτόματα για να ικανοποιήσουν τις εξαρτήσεις.

Readme.md – χρησιμοποιήστε αυτό το αρχείο για να κοινοποιήσετε βασικές λεπτομέρειες σχετικά με την εφαρμογή σας, όπως τι κάνει η εφαρμογή και πώς να την εγκαταστήσετε και να την εκτελέσετε.

Rakefile – περιέχει διάφορους ορισμούς εργασιών rake που βοηθούν στην αυτοματοποίηση των καθημερινών εργασιών διαχείρισης της εφαρμογής σας.

config.ru – ένα αρχείο διαμόρφωσης rack που παρέχει μια διεπαφή στον διακομιστή ιστού για την εκκίνηση της εφαρμογής σας.

Αλλαγή καταλόγου σε εφαρμογή_εργασίας κατάλογος Οι ράγες δημιουργούνται και εκτελούνται διακομιστής ραγών για να ξεκινήσετε την εφαρμογή. Τύπος localhost: 3000 στη γραμμή διευθύνσεων του προγράμματος περιήγησης ιστού σας. Θα πρέπει να δείτε την παρακάτω οθόνη εάν όλα πήγαν καλά.

Ράγες – Δομές αρχείου έργου

Αυτή είναι η προεπιλεγμένη αρχική σελίδα της εφαρμογής σας. Θα την αλλάξετε σε επόμενη ενότητα αυτού του εκπαιδευτικού οδηγού για το Ruby on Rails. Μπορείτε να σταματήσετε τον διακομιστή πατώντας Ctrl + C.

Rails – Δημιουργία εντολών

Η εντολή Rails generate χρησιμοποιεί πρότυπα για να δημιουργήσει πολλά χρήσιμα πράγματα στην εφαρμογή σας. Αυτές οι γεννήτριες εξοικονομούν πολύ χρόνο.

Γράφουν τυποποιημένο κώδικα που είναι απαραίτητος για να λειτουργήσει η εφαρμογή ιστού σας. Εκτέλεση οι ράγες δημιουργούν από μόνο του στη γραμμή εντολών ή στο τερματικό για να δείτε μια λίστα με τις διαθέσιμες γεννήτριες, όπως φαίνεται παρακάτω.

Rails – Δημιουργία εντολών

Μπορείτε επίσης να τρέξετε οι ράγες δημιουργούν για να δείτε μια περιγραφή του τι κάνει η εντολή. Παραθέτει βολικές επιλογές και ένα παράδειγμα χρήσης. Το παρακάτω σχήμα δείχνει την έξοδο της εκτέλεσης οι ράγες παράγουν ελεγκτή.

Rails – Δημιουργία εντολών

Χρησιμοποιήστε την εντολή rails generate scaffold για να δημιουργήσετε αυτόματα το μοντέλο, την προβολή και τον ελεγκτή για την εφαρμογή λίστας υποχρεώσεων που δημιουργείτε. Εκτελέστε τα ακόλουθα στο τερματικό σας (βεβαιωθείτε ότι βρίσκεστε ακόμα στο εφαρμογή_εργασίας τηλεφωνικός κατάλογος):

rails generate scaffold todo_list title:string description:text

Αυτό δημιουργεί μια πλήρη διεπαφή ιστού CRUD (Δημιουργία, Ανάγνωση, Ενημέρωση, Διαγραφή) για τον πίνακα TodoLists.

Μια άλλη χρήσιμη εντολή που πρέπει να γνωρίζετε είναι οι ράγες καταστρέφουνΑντιστρέφει οτιδήποτε οι ράγες δημιουργούν κάνει.

Ράγες – Δρομολόγηση

Το σύστημα δρομολόγησης Rails, που ονομάζεται δρομολογητής Rails, χειρίζεται όλα τα εισερχόμενα αιτήματα προς την εφαρμογή web σας. Εξετάζει το URL κάθε αιτήματος και το αντιστοιχίζει στην ενέργεια ελεγκτή που είναι υπεύθυνη για τον χειρισμό του, χρησιμοποιώντας τη σύνταξη που καθορίζεται στο αρχείο routes (config/routes.rb).

Το αρχείο διαδρομών ελέγχει κάθε URL πτυχή της διαδικτυακής σας εφαρμογής. Το Rails χρησιμοποιεί ένα σχέδιο RESTful βασισμένο στο αρχιτεκτονικό στυλ REST, το οποίο παρέχει έναν χάρτηping μεταξύ ρημάτων HTTP και αιτήματος URLs στις ενέργειες του ελεγκτή.

Το αρχείο διαδρομών δημιουργήθηκε όταν εκτελέσατε ράγες καινούργια νωρίτερα. Συνεχίζοντας με την εφαρμογή Todo που δημιουργείτε, εκτελέστε τα εξής:

rails db:migrate

Βεβαιωθείτε ότι βρίσκεστε ακόμα στη ρίζα της εφαρμογής (το εφαρμογή_εργασίας τηλεφωνικός κατάλογος).

Ξεκινήστε ξανά τον διακομιστή με διακομιστής ραγών. Τύπος http://localhost:3000/todo_lists/ στο πρόγραμμα περιήγησής σας και πατήστε Enter. Θα πρέπει να εμφανιστεί ξανά μια ιστοσελίδα όπως αυτή που ακολουθεί.

Ράγες – Δρομολόγηση

Αυτή είναι η προβολή λιστών Todo που δημιούργησε η εντολή scaffold και ελέγχεται από το TodoListsController. ευρετήριο δράση.

Προσθέστε μια λίστα υποχρεώσεων κάνοντας κλικ στην επιλογή "Νέα λίστα υποχρεώσεων" στη σελίδα. Θα πρέπει να δείτε την παρακάτω οθόνη.

Ράγες – Δρομολόγηση

Παρατηρήστε το URL είναι τώρα http://localhost:3000/todo_lists/newΑυτή είναι η σελίδα για τη δημιουργία μιας νέας λίστας εκκρεμοτήτων και ελέγχεται από το TodoListsController. νέος μέθοδος.

Εισαγάγετε τον τίτλο και την περιγραφή της λίστας υποχρεώσεων στη φόρμα και κάντε κλικ στην επιλογή «Δημιουργία λίστας υποχρεώσεων». URL θα πρέπει να αλλάξει σε http://localhost:3000/todo_lists/1, όπως φαίνεται παρακάτω.

Ράγες – Δρομολόγηση

Αυτή είναι η σελίδα εμφάνισης μιας λίστας Todo, η οποία ελέγχεται από το TodoListsController. δείχνουν μέθοδος. Αν επιστρέψετε στο http://localhost:3000/todo_lists/, θα πρέπει τώρα να δείτε την παρακάτω οθόνη με την προσθήκη της νέας λίστας υποχρεώσεων.

Ράγες – Δρομολόγηση

Το Rails μπόρεσε να αντιστοιχίσει κάθε αίτημα στην αντίστοιχη ενέργεια TodoListsController χρησιμοποιώντας τον ορισμό διαδρομής στο config/routes.rb.

Αν ρίξετε μια ματιά σε αυτό το αρχείο, θα δείτε μία μόνο γραμμή πόροι: todo_lists, που είναι ο προεπιλεγμένος τρόπος γραφής RESTful διαδρομών του Rails. Αυτή η μεμονωμένη γραμμή δημιουργεί επτά διαδρομές, όλες χαρτογραφημένεςping στον ελεγκτή TodoLists.

Κατά σύμβαση, κάθε ενέργεια ελεγκτή αντιστοιχεί σε μια συγκεκριμένη λειτουργία CRUD (Δημιουργία, Ανάγνωση, Ενημέρωση, Διαγραφή) στη βάση δεδομένων.

τρέξιμο σιδηροδρομικές διαδρομές στη γραμμή εντολών σας για να δείτε τις διάφορες διαδρομές που είναι διαθέσιμες στην εφαρμογή σας. Το παρακάτω σχήμα δείχνει την έξοδο της εκτέλεσης σιδηροδρομικές διαδρομές.

Ράγες – Δρομολόγηση

Ράγες – Απόψεις

Το επίπεδο προβολής είναι ένα από τα στοιχεία του παραδείγματος MVC και είναι υπεύθυνο για τη δημιουργία της απόκρισης HTML για κάθε αίτημα στην εφαρμογή σας. Το Rails χρησιμοποιεί από προεπιλογή το ERB (Embedded Ruby), το οποίο είναι ένα ισχυρό σύστημα δημιουργίας προτύπων για Ruby.

Το ERB κάνει τα πρότυπα εύκολα στη σύνταξη και τη συντήρηση συνδυάζοντας απλό κείμενο με κώδικα Ruby για αντικατάσταση μεταβλητών και έλεγχο ροής. Ένα πρότυπο ERB χρησιμοποιεί το .html.erb επέκταση.

Θα χρησιμοποιείτε κυρίως δύο δείκτες ετικετών, καθένας από τους οποίους προκαλεί την επεξεργασία και τον χειρισμό του ενσωματωμένου κώδικα με έναν συγκεκριμένο τρόπο.

Μια ετικέτα με σύμβολο ισότητας <%= %> υποδεικνύει ότι ο ενσωματωμένος κώδικας είναι μια έκφραση και το αποτέλεσμα του κώδικα θα πρέπει να αντικατασταθεί στην έξοδο κατά την απόδοση του προτύπου.

Η άλλη ετικέτα χωρίς σύμβολο ίσον <% %> υποδεικνύει στον renderer ότι το αποτέλεσμα του κώδικα δεν πρέπει να αντικατασταθεί ή να εκτυπωθεί στην έξοδο.

Κάθε ελεγκτής στην εφαρμογή Rails έχει έναν αντίστοιχο υποκατάλογο εφαρμογή/προβολές, και κάθε ενέργεια σε έναν ελεγκτή έχει μια αντίστοιχη .html.erb αρχείο σε αυτόν τον υποκατάλογο.

Ρίξτε μια ματιά εφαρμογή/προβολές της εφαρμογής Todo που δημιουργείτε. Θα βρείτε έναν υποκατάλογο με το όνομα λίστες_προς_εργασία περιέχουν .html.erb αρχεία με ονόματα που αντιστοιχούν στις ενέργειες στο TodoLists ελεγκτή.

Rails – ActiveRecord, Active Record Pattern και ORM

Το ActiveRecord είναι η υλοποίηση Ruby του μοτίβου Active Record. Σε αυτό το μοτίβο, μια κλάση αντιπροσωπεύει έναν πίνακα βάσης δεδομένων και μια παρουσία της κλάσης αντιπροσωπεύει μια γραμμή σε αυτόν τον πίνακα.

Το ActiveRecord αναφέρεται συνήθως ως ORM (Object Relational Map)ping), μια τεχνική που σας επιτρέπει να διαχειρίζεστε τη βάση δεδομένων σας χρησιμοποιώντας μια γλώσσα με την οποία νιώθετε πιο άνετα. Δεν εξαρτάται από τη βάση δεδομένων, επομένως μπορείτε εύκολα να εναλλάσσεστε μεταξύ βάσεων δεδομένων — για παράδειγμα, SQLite, MySQL, PostgreSQL, SQL Server ή Oracle — χρησιμοποιώντας τον ίδιο κώδικα και λογική.

Για παράδειγμα, για να λάβετε έναν πίνακα που περιέχει κάθε λίστα Todo στην εφαρμογή σας, δεν χρειάζεται να γράψετε κώδικα που ανοίγει μια σύνδεση, εκτελεί ένα ερώτημα SQL SELECT και μετατρέπει το αποτέλεσμα.

Απλώς πληκτρολογείς Λίστα εργασιών.όλακαι η ActiveRecord επιστρέφει τον πίνακα που είναι γεμάτος με αντικείμενα TodoList που μπορείτε να χρησιμοποιήσετε όπως θέλετε.

Το μόνο που χρειάζεται να κάνετε είναι να ρυθμίσετε τη διαμόρφωση στο config/database.ymlκαι το ActiveRecord χειρίζεται τις διαφορές μεταξύ των συστημάτων βάσεων δεδομένων. Όταν αλλάζετε από τη μία βάση δεδομένων στην άλλη, δεν χρειάζεται να ξαναγράψετε τον κώδικά σας.

Εσείς εστιάζετε στη λογική της εφαρμογής και το ActiveRecord φροντίζει για τις λεπτομέρειες χαμηλού επιπέδου της σύνδεσης με τη βάση δεδομένων σας. Χρησιμοποιεί συμβάσεις ονοματοδοσίας για την αντιστοίχιση μοντέλων σε πίνακες βάσης δεδομένων.

Το Rails πολλαπλασιάζει τα ονόματα των κλάσεων του μοντέλου σας για να βρει τον αντίστοιχο πίνακα βάσης δεδομένων. Έτσι, για μια κλάση TodoList, το ActiveRecord χρησιμοποιεί έναν πίνακα βάσης δεδομένων που ονομάζεται λίστες_προς_εργασία.

Ράγες – Μετακινήσεις

Μια μετεγκατάσταση Rails είναι ένα σενάριο που χρησιμοποιείτε για την εξέλιξη της βάσης δεδομένων της εφαρμογής σας. Χρησιμοποιείται για τη ρύθμιση ή την αλλαγή της βάσης δεδομένων σας χωρίς να χρειάζεται να γράψετε χειροκίνητα SQL.

Χρησιμοποιεί την Ruby για να ορίσει αλλαγές στο σχήμα της βάσης δεδομένων και καθιστά δυνατή τη χρήση ελέγχου έκδοσης για να διατηρεί τη βάση δεδομένων σας συγχρονισμένη σε όλα τα περιβάλλοντα.

Οι μετεγκαταστάσεις Rails χρησιμοποιούν μια γλώσσα Ruby Domain Specific Language (DSL). Αυτή λειτουργεί ως abs.tracκαι καθιστά δυνατή τη χρήση ή την αλλαγή της μηχανής βάσης δεδομένων σας με βάση τις απαιτήσεις σας.

Οι μετεγκαταστάσεις μπορούν να κοινοποιηθούν σε οποιονδήποτε εργάζεται στην εφαρμογή και μπορούν επίσης να επαναφερθούν για να αναιρεθούν οι αλλαγές. Αυτός είναι ένας ισχυρός μηχανισμός ασφαλείας, επομένως δεν χρειάζεται να ανησυχείτε για μόνιμη ζημιά στη βάση δεδομένων σας.

Rails – Ενώσεις ActiveRecord

Μια σύνδεση μεταξύ δύο μοντέλων ActiveRecord είναι γνωστή ως συσχέτιση. Οι συσχετίσεις διευκολύνουν πολύ την εκτέλεση λειτουργιών σε σχετικές εγγραφές στον κώδικά σας. Υπάρχουν τέσσερις συνηθισμένες κατηγορίες.

Ένα προς Ένα: μια εγγραφή περιέχει ακριβώς μία παρουσία ενός άλλου μοντέλου. Ένα καλό παράδειγμα είναι ένα προφίλ χρήστη — ένας χρήστης έχει μόνο ένα προφίλ. Χρησιμοποιεί το έχει_ένα λέξη-κλειδί.

Ένα προς πολλά: η πιο συνηθισμένη συσχέτιση — ένα μοντέλο δεν έχει καμία ή περισσότερες εμφανίσεις ενός άλλου μοντέλου. Χρησιμοποιήστε το έχει_πολλά λέξη-κλειδί για να δηλώσετε αυτόν τον συσχετισμό.

Πολλοί προς πολλούς: λίγο πιο περίπλοκο. Το ActiveRecord παρέχει δύο τρόπους για να το χειριστείτε: έχει_και_ανήκει_σε_πολλά και έχει_πολλά :μέσω, το οποίο σας δίνει πρόσβαση στο μοντέλο σύνδεσης που ορίζεται σε ξεχωριστό πίνακα.

Πολυμορφικό Ένα προς Πολλά: μια πιο προηγμένη συσχέτιση στο Rails. Ορίζει ένα μοντέλο που μπορεί να ανήκει σε πολλά διαφορετικά μοντέλα σε μία μόνο συσχέτιση.

Rails – Επικυρώσεις ActiveRecord

Η επικύρωση βοηθά να διασφαλιστεί ότι έχετε σωστά δεδομένα, επειδή η εργασία με κακά δεδομένα είναι επικίνδυνη και μπορεί να κοστίσει χρήματα στην επιχείρησή σας.

Η επικύρωση παρέχει επίσης ένα επιπλέον επίπεδο ασφάλειας έναντι κακόβουλων χρηστών που προσπαθούν να εισαγάγουν επιβλαβή δεδομένα στη βάση δεδομένων σας. Το Rails προσφέρει ένα καθαρό API βοηθών επικύρωσης στο ActiveRecord που διατηρεί τη βάση δεδομένων σας καθαρή, ασφαλή και απαλλαγμένη από σφάλματα.

Οι επικυρώσεις ActiveRecord εκτελούνται σε αντικείμενα μοντέλου πριν από την αποθήκευσή τους στη βάση δεδομένων, γεγονός που τις καθιστά πιο αξιόπιστες και ακολουθεί τις βέλτιστες πρακτικές.

Οι ακόλουθες μέθοδοι ActiveRecord ενεργοποιούν επικυρώσεις όταν καλούνται σε αντικείμενα μοντέλου: δημιουργία, δημιουργία!, αποθήκευση, αποθήκευση!, ενημέρωση και ενημέρωση!Οι εκδόσεις Bang (δημιουργία!, αποθήκευση! και ενημέρωση!) δημιουργεί μια εξαίρεση εάν η εγγραφή δεν είναι έγκυρη, ενώ οι εκδόσεις που δεν είναι bang επιστρέφουν false αντ' αυτού.

Τα πιο συνηθισμένα βοηθήματα επικύρωσης ActiveRecord είναι:

  • Επιβεβαίωση: Επικυρώνει ότι δύο πεδία έχουν την ίδια τιμή, για παράδειγμα κωδικός πρόσβασης και επιβεβαίωση κωδικού πρόσβασης. Χρησιμοποιείται μαζί με το βοηθητικό πρόγραμμα επικύρωσης παρουσίας.
  • Παρουσία: ελέγχει ότι το πεδίο δεν είναι κενό.
  • Μοναδικότητα: διασφαλίζει μια μοναδική τιμή για ένα πεδίο, για παράδειγμα όνομα χρήστη.
  • Μήκος: επιβάλλει ένα όριο στο μήκος χαρακτήρων ενός πεδίου.

Μπορείτε επίσης να δημιουργήσετε τη δική σας προσαρμοσμένη επικύρωση χρησιμοποιώντας το επικύρωση μέθοδος και μεταβιβάζοντάς της το όνομα μιας προσαρμοσμένης μεθόδου επικύρωσης.

Ελέγξτε το μοντέλο σφάλματα αντιρρήσεις για να μάθετε γιατί απέτυχε μια επικύρωση. Αυτό σας παρέχει όλα όσα χρειάζεστε για να κάνετε την εφαρμογή σας πιο περιορισμένη και ασφαλή, επιτρέποντας μόνο έγκυρα δεδομένα στη βάση δεδομένων σας.

Ράγες – ActionController

Ο ελεγκτής Rails είναι το κέντρο της διαδικτυακής εφαρμογής σας. Διευκολύνει και συντονίζει την επικοινωνία μεταξύ του χρήστη, των μοντέλων και των προβολών.

Οι κλάσεις ελεγκτών σας κληρονομούνται από ApplicationController, το οποίο περιέχει κώδικα που μπορεί να εκτελεστεί σε όλους τους άλλους ελεγκτές και ο οποίος με τη σειρά του κληρονομεί από ActionController::Base.

Ο ελεγκτής παρέχει τα ακόλουθα στην εφαρμογή σας:

  • Δρομολογεί εξωτερικά αιτήματα σε εσωτερικές ενέργειες.
  • Διαχειρίζεται την προσωρινή αποθήκευση, δίνοντας ώθηση στην απόδοση της εφαρμογής σας.
  • Διαχειρίζεται βοηθητικές μεθόδους που επεκτείνουν τις δυνατότητες του προτύπου προβολής και επίσης διαχειρίζεται τις συνεδρίες χρηστών, παρέχοντας στους χρήστες μια ομαλή εμπειρία.

Ράγες – Διαμορφώσεις

Μπορείτε να διαμορφώσετε στοιχεία όπως αρχικοποιητές, στοιχεία ενεργητικού, γεννήτριες και middleware χρησιμοποιώντας τους αρχικοποιητές και τα αρχεία διαμόρφωσης της εφαρμογής Rails στο config κατάλογος. Αρχεία όπως config/application.rb, config/environments/development.rbκαι config/environments/test.rb χρησιμοποιούνται εδώ. Μπορείτε επίσης να προσθέσετε προσαρμοσμένες ρυθμίσεις για την εφαρμογή σας.

Ράγες – Εντοπισμός σφαλμάτων

Καθώς δημιουργείτε την εφαρμογή σας, θα χρειαστεί να εντοπίσετε σφάλματα στον κώδικά σας. Το Rails το κάνει αυτό εύκολο με το αντίο gem. Μπορείτε να ξεκινήσετε μια συνεδρία εντοπισμού σφαλμάτων τοποθετώντας τη λέξη-κλειδί αντίο οπουδήποτε στον κώδικα της εφαρμογής σας.

Αυτό διακόπτει προσωρινά την εκτέλεση σε εκείνο το σημείο. Το byebug gem προσφέρει αρκετές εντολές. Οι πιο χρήσιμες είναι:

  • Επόμενο: μετακινείται στην επόμενη γραμμή κώδικα, παραλείπεταιping όλες οι μέθοδοι που ενεργοποιούνται από την τρέχουσα γραμμή.
  • βήμα: παρόμοια με επόμενη, αλλά εισέρχεται σε κάθε μέθοδο που καλείται.
  • Διακοπή: σταματά την εκτέλεση του κώδικα.
  • συνεχίσει: συνεχίζει την εκτέλεση κώδικα.

Άλλα gems εντοπισμού σφαλμάτων είναι διαθέσιμα, όπως εξετάζωΌλα προσφέρουν παρόμοια λειτουργικότητα με ελαφρώς διαφορετική σύνταξη. Τα gems εντοπισμού σφαλμάτων δεν πρέπει να χρησιμοποιούνται στην παραγωγή, καθώς ενέχουν κινδύνους για την εφαρμογή σας και κακή εμπειρία για τους χρήστες σας.

Τα αρχεία καταγραφής μπορούν να ελεγχθούν για σφάλματα στην παραγωγή και να αντιμετωπιστούν ανάλογα. Θα πρέπει επίσης να ακολουθήσετε μια προσέγγιση ανάπτυξης βάσει δοκιμών (TDD) κατά την ανάπτυξη της εφαρμογής σας, για να διασφαλίσετε ότι όλα λειτουργούν σωστά πριν από την ανάπτυξή της στην παραγωγή.

Συχνές Ερωτήσεις

Ναι. Το Rails συνεχίζει να υποστηρίζει τα GitHub, Shopify και Basecamp, και η έκδοση 7 έχει προσθέσει Hotwire, εισαγωγή χαρτών και ενσωματωμένη υποστήριξη επεξεργαστή Trix. Παραμένει μια ισχυρή επιλογή για ομάδες που χρειάζονται γρήγορη επανάληψη με δοκιμασμένες σε μάχες συμβάσεις.

Οι ράγες χρησιμοποιούν Ruby, Django χρησιμοποιεί PythonΚαι τα δύο είναι full-stack MVC frameworks με ισχυρά ORM. Το Rails βασίζεται σε συμβάσεις και γεννήτριες κώδικα, ενώ το Django διαθέτει ένα περιβάλλον εργασίας διαχειριστή και μια αυστηρότερη, σαφή διαμόρφωση που πολλές ομάδες προτιμούν για έργα με μεγάλο όγκο δεδομένων.

Οι συνήθεις διαδρομές ανάπτυξης περιλαμβάνουν Heroku, Render, Fly.io και AWS μέσω Capistrano ή Docker. Οι περισσότερες ομάδες προμεταγλωττίζουν στοιχεία με rake assets:precompile, ορίζουν RAILS_ENV=production, εκτελούν rails db:migrate και προβάλλουν την εφαρμογή πίσω από το Puma συν Nginx ή ένα διαχειριζόμενο load balancer.

Ναι. Οι βοηθοί τεχνητής νοημοσύνης μπορούν να δημιουργήσουν μοντέλα, να προτείνουν ερωτήματα ActiveRecord, να συντάξουν δοκιμές RSpec και να ελέγξουν τις μετεγκαταστάσεις. Πάντα να ελέγχετε τον παραγόμενο κώδικα σε σχέση με τις συμβάσεις Rails και τις οδηγίες ασφαλείας πριν από την υποβολή, ειδικά για έλεγχο ταυτότητας και αλλαγές στη βάση δεδομένων.

Οι εφαρμογές rails συνήθως καλούν παρόχους τεχνητής νοημοσύνης μέσω Ruby SDK ή HTTP clients όπως το Faraday, αποθηκεύουν μηνύματα και απαντήσεις σε μοντέλα ActiveRecord και βάζουν σε ουρά μεγάλες εργασίες με το Sidekiq. Εφαρμογές όπως το ruby-openai και το langchainrb κάνουν την καλωδίωση των σύγχρονων λειτουργιών τεχνητής νοημοσύνης απλή.

Συνοψίστε αυτήν την ανάρτηση με: