IT-Swarm.Net

Rails 4: πριν από το φιλτράρισμα έναντι πριν από την ενέργεια

Στις γεννήτριες Rails> 4.0.0 δημιουργούνται λειτουργίες CRUD με before_action όχι before_filter. Φαίνεται να κάνει το ίδιο πράγμα. Ποια είναι η διαφορά μεταξύ αυτών των δύο;

322
freemanoid

Όπως μπορούμε βλέπε στο ActionController::Base, before_action είναι μόνο νέα σύνταξη για before_filter.

Ωστόσο, όλες οι συνταγές before_filtersέχουν καταργηθεί σε Rails 5.0 και θα αφαιρεθούν σε Rails 5.1

491
freemanoid

Είναι απλώς η διαφορά σύνταξης, στο Rails app υπάρχει CRUD και επτά ενέργειες βασικά με το όνομα index, new, create =, εμφάνιση, ενημέρωση, επεξεργασία, καταστρέφουν.

Οι ράγες 4 καθιστούν τον προγραμματιστή φιλικό για να αλλάξει τη σύνταξη πριν από το φίλτρο σε πριν από τη δράση.

before_action μέθοδος κλήσης πριν από τις ενέργειες που δηλώνουμε, όπως

before_action :set_event, only: [:show, :update, :destroy, :edit]

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

63
Awais

Πρόκειται μόνο για αλλαγή ονόματος. before_action είναι πιο συγκεκριμένη, επειδή εκτελείται πριν από μια ενέργεια.

30
Matthias

before_filter/before_action: σημαίνει τίποτα που πρέπει να εκτελεστεί πριν εκτελεστεί κάποια ενέργεια.

Και οι δύο είναι ίδιες. είναι απλώς ψευδώνυμα μεταξύ τους, καθώς η συμπεριφορά τους είναι ίδια.

0
Pankaj Dhote

Για να καταλάβουμε ποια είναι η διαφορά ανάμεσα στο ago_action και το before_filter, θα πρέπει να κατανοήσουμε τη διαφορά μεταξύ δράσης και φίλτρου.

Μια ενέργεια είναι μια μέθοδος ενός ελεγκτή στον οποίο μπορείτε να κατευθυνθείτε. Για παράδειγμα, η σελίδα δημιουργίας χρηστών σας μπορεί να δρομολογηθεί στο UsersController # new - new είναι η ενέργεια σε αυτή τη διαδρομή.

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

Rails 4 -> action

Ράγες 3 -> φίλτρο

0
yusefu