[RUBY] Maîtrisez la portée [Rails]!

Explication de la portée

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

Comment utiliser lambda

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

mérite

Recommended Posts

Maîtrisez la portée [Rails]!
Remarques sur la portée
Rails ~ Comprendre la fonction de message ~
[Rails] Supprimer le fichier de migration
[Rails] Comment utiliser Scope
[Rails] Quel était le message d'erreur?
[Rails] Vérifiez le contenu de l'objet
À propos du symbole <%%> dans Rails erb
Explication de l'ordre des itinéraires ferroviaires
Vérifier l'état de migration des rails
Portée
[Rails] J'ai essayé de supprimer l'application
Vérifiez la racine sur le navigateur Rails
[rails] Le cas où le serveur a cessé de fonctionner
Modifier le fuseau horaire par défaut de l'application rails
Point 57 Réduire la portée des variables locales
L'identité des paramètres de rails [: id]
[Rails] Comment utiliser la méthode de la carte
Préparer l'environnement de format pour "Rails" (VScode)
Histoire de refactoring de rails apprise sur le terrain
Préparer l'environnement de contrôle de sécurité pour Rails 6
[Rails] Changer le nom de l'étiquette de f.label
Vérifiez le contenu du traitement avec [rails] binding.pry
[Rails] Réinitialisez la base de données dans l'environnement de production
Rails6: Extraire l'image dans le texte d'action