我不知道它是什么,但我似乎无法弄明白
我坚持的是这个,我有两个模型,彼此之间有HABTM关联。
class Event < ActiveRecord::Base
has_and_belongs_to_many :users
end
class User < ActiveRecord::Base
has_and_belongs_to_many :events
end
因此,当我创建一个事件时,会有几个用户与之关联。让我们说用户1和2有3个他们一起参加的活动。现在我想计算这些实例。所以我想让3号回到我身边。
我想它应该很简单,但我无法弄明白,有人能指出我正确的方向吗?提前谢谢。
答案 0 :(得分:1)
如果您要查找具有2个共同用户的所有事件,您可以查询所有事件,然后为每个用户过滤掉结果。
user1 = User.find(1)
user2 = User.find(2)
events = Event.all
common_events = events.select {|e| e.users.include?(user1) and e.users.include?(user2)}
变量common_events
将包含user1和user2都参与的事件。
答案 1 :(得分:1)
如果您想知道两个用户的常见事件数量,那么,如果没有花哨的SQL,您可以这样做:
events1 = User.find(1).events.scoped
events2 = User.find(2).events.scoped
common_events_count = Event.where(id: events1).where(id: events2).count