J'ai un modèle de Voici mon groupe: Et voici mon événement: Je voudrais pour créer un Groupe qui comporte de nombreux événements , et j'essaie de trouver les groupes qui ont des événements publics uniquement via quelque chose comme Group.public_events class Event < ApplicationRecord
belongs_to :group
end
class Group < ApplicationRecord
has_many :events, dependent: :destroy
end
scope: public_events pour trouver .where (private: false) sur l'événement, mais cela doit-il aller sur le groupe ou l'événement?
3 Réponses :
vous pouvez mettre Event.rb
@public_events = Group.first.events.public_events
et vous pouvez l'appeler
class Event < ApplicationRecord
belongs_to :group
scope :public_events, lambda { where('private = ?',false)}
end
Si je fais cela, j'obtiens une erreur de méthode non définie. Qu'est-ce que je fais mal? Merci
ah désolé j'ai oublié de mentionner .events, je viens de corriger ci-dessus @public_events = Group.first.events.public_events
Participera à l'événement comme ceci.
class Event < ApplicationRecord
belongs_to :group
scope :public_events, -> { where(private: false) }
end
L'appelez-vous Group.first.public_events? Parce que j'obtiens un noMethodError. Merci
Vous pouvez l'appeler Group.public_events
appelez-le Group.public_events
Vous pouvez utiliser cette option.
scope :public_events, ->(parameter_if_any) {
where({ private: parameter_if_any||false } )
}