Définissez la portée dans le modèle et appelez-la avec un contrôleur ou autre.
-Exemple- Définissez la portée dans le modèle utilisateur. Appelé par le contrôleur des utilisateurs.
app/models/user.rb
class User < ApplicationRecord
...
# scope :Nom à appeler, -> {En traitement}
#Obtenir la colonne supprimée est faux
scope :active, -> { where(deleted: false) }
# created_Obtenir à la colonne dans l'ordre décroissant
scope :sorted, -> { order(created_at: :desc) }
#Une combinaison d'actifs et triés
scope :recent, -> { active.sorted }
...
end
app/controllers/users_controller.rb
class UsersController < ApplicationController
...
def index
# @users =modèle.nom de la portée
@users = User.recent
end
...
end
lambda est une fonction anonyme. De plus, l'identité de la fonction anonyme est un objet Ruby Proc. Une fonction anonyme est en quelque sorte une "fonction sans nom". Quelque chose comme le code ci-dessous est appelé une fonction anonyme. (* Les deux codes sont synonymes.)
nameless_func = lambda { |n| n**2 }
nameless_func.(5)
#=> 25
scope :nameless_func, -> { |n| n**2 }
nameless_func(5)
#=> 25
Recommended Posts