Ruby on rails 你能给我一个检查缺席情况的范围吗?
我的数据库中有一个Ruby on rails 你能给我一个检查缺席情况的范围吗?,ruby-on-rails,scopes,Ruby On Rails,Scopes,我的数据库中有一个invests表,当我以用户身份执行任务时,我希望将事件.id传递给作用域用户。不邀请(事件) 如何构建此作用域以检查用户ID是否不在其中 class User has_many :invites, :foreign_key => 'participant_id' ... end class Invite belongs_to :participant, :class_name => "User", :foreign_key => "partic
invests
表,当我以用户身份执行任务时,我希望将事件.id传递给作用域用户。不邀请(事件)
如何构建此作用域以检查用户ID是否不在其中
class User
has_many :invites, :foreign_key => 'participant_id'
...
end
class Invite
belongs_to :participant, :class_name => "User", :foreign_key => "participant_id"
...
end
您可以使用事件。邀请ID
:
scope :not_invited, lambda { |event| where("id not in (?)", event.invite_ids) }
我可以这样做scope:not|invested,lambda{event}where(“id not in(?)”,event.invests.collect{i|i.participant{u id}.join(',')}
您能提供有关您的模式的更多信息吗?也许有一种更有效的方法可以做到这一点,在前面的评论中应该说,i.id
我没有意识到这一点,我一直在使用collect。那么..\u ids会为我这样做吗?是的,*\u ids
会为你这样做。当ActiveRecord对象与另一个模型有许多关联时,它将与ActiveRecord对象关联。