我有一个Group
模型,其中有许多Events
,并且我试图通过Group.public_events
这是我的群组:
class Group < ApplicationRecord
has_many :events, dependent: :destroy
end
这是我的活动:
class Event < ApplicationRecord
belongs_to :group
end
我想创建一个scope :public_events
来找到Event上的.where(private: false)
,但这应该在Group或Event上进行吗?
答案 0 :(得分:5)
将像这样参加活动。
class Event < ApplicationRecord
belongs_to :group
scope :public_events, -> { where(private: false) }
end
答案 1 :(得分:3)
您可以放入Event.rb
class Event < ApplicationRecord
belongs_to :group
scope :public_events, lambda { where('private = ?',false)}
end
您可以调用它
@public_events = Group.first.events.public_events
答案 2 :(得分:2)
您可以使用此功能。
scope :public_events, ->(parameter_if_any) {
where({ private: parameter_if_any||false } )
}