<p>στις γεννήτριες rails&gt; 4.0.0 δημιουργούνται λειτουργίες crud με <code>before\_action</code> όχι <code>before\_filter</code>. φαίνεται να κάνει το ίδιο πράγμα. ποια είναι η διαφορά μεταξύ αυτών των δύο;</p>
rails 4: πριν από το φιλτράρισμα έναντι πριν από την ενέργεια
<p>όπως μπορούμε <a href="https://github.com/rails/rails/blob/master/actionpack/lib/abstract\_controller/callbacks.rb">βλέπε</a> στο <code>actioncontroller::base</code>, <code>before\_action</code> είναι μόνο <a href="https://github.com/rails/rails/commit/9d62e04838f01f5589fa50b0baa480d60c815e2c">νέα σύνταξη</a> για <code>before\_filter</code>.</p><p>ωστόσο, όλες οι συνταγές <code>before\_filters</code> <a href="https://github.com/rails/rails/blob/v5.0.0.beta2/actionpack/lib/abstract\_controller/callbacks.rb#l190-l193">έχουν καταργηθεί</a> σε <strong> rails 5.0 </strong> και θα αφαιρεθούν σε <strong> rails 5.1 </strong></p>
<p>είναι απλώς η διαφορά σύνταξης, στο rails app υπάρχει crud και επτά ενέργειες βασικά με το όνομα <strong>index</strong>, <strong>new</strong>, <strong>create</strong> =, <strong>εμφάνιση</strong>, <strong>ενημέρωση</strong>, <strong>επεξεργασία</strong>, <strong>καταστρέφουν</strong>.</p><p>οι ράγες 4 καθιστούν τον προγραμματιστή φιλικό για να αλλάξει τη σύνταξη <strong>πριν από το φίλτρο</strong> σε <strong>πριν από τη δράση</strong>.</p><p><strong>before\_action</strong> μέθοδος κλήσης πριν από τις ενέργειες που δηλώνουμε, όπως</p><pre><code>before\_action :set\_event, only: [:show, :update, :destroy, :edit] </code></pre><p><strong>set\_event</strong> είναι μια μέθοδος που θα καλέσει πάντα πριν από την εμφάνιση, την ενημέρωση, την επεξεργασία και την καταστροφή.</p>
<p>πρόκειται μόνο για αλλαγή ονόματος. <code>before\_action</code> είναι πιο συγκεκριμένη, επειδή εκτελείται πριν από μια ενέργεια.</p>
<p>before\_filter/before\_action: σημαίνει τίποτα που πρέπει να εκτελεστεί πριν εκτελεστεί κάποια ενέργεια.</p><p>και οι δύο είναι ίδιες. είναι απλώς ψευδώνυμα μεταξύ τους, καθώς η συμπεριφορά τους είναι ίδια.</p>
<p>για να καταλάβουμε ποια είναι η διαφορά ανάμεσα στο ago\_action και το before\_filter, θα πρέπει να κατανοήσουμε τη διαφορά μεταξύ δράσης και φίλτρου.</p><p>μια ενέργεια είναι μια μέθοδος ενός ελεγκτή στον οποίο μπορείτε να κατευθυνθείτε. για παράδειγμα, η σελίδα δημιουργίας χρηστών σας μπορεί να δρομολογηθεί στο userscontroller # new - new είναι η ενέργεια σε αυτή τη διαδρομή.</p><p>τα φίλτρα λειτουργούν σε σχέση με τις ενέργειες ελέγχου - πριν, μετά ή γύρω τους. αυτές οι μέθοδοι μπορούν να σταματήσουν την επεξεργασία των ενεργειών με ανακατεύθυνση ή ρύθμιση κοινών δεδομένων σε κάθε ενέργεια στον ελεγκτή.</p><blockquote> <p>rails 4 -&gt; action</p> <p>ράγες 3 -&gt; φίλτρο</p> </blockquote>