我想用2个模型构建一个rails请求。 我认为这很简单,但我不想自己做一个循环。
我在我的乡村模特:
def self.find_for_user(user_id)
wines = Wine.where("user_id = ?", user_id).group(:country_id)
where("countries.id IN ?", wines.map())
end
我想根据第一个要求获得所有国家(按国家分组的葡萄酒,我只需要这些国家)
我想我可以在一行中执行此操作,其中放置map()或其他指令。我只需要获得所有country_id字段的葡萄酒。
感谢。
答案 0 :(得分:0)
如果您想要的是所有拥有特定用户葡萄酒的国家/地区,您可以在SQL中执行此操作:
where("countries.id in (select country_id from wines where wines.user_id = ?)", user_id)
答案 1 :(得分:0)
假设您在葡萄酒和国家之间建立了关联(即。has_many :wines
in country.rb),我认为这正是您所寻找的:
def self.find_for_user(user_id)
joins(:wines).where('wines.user_id = ?', user_id).uniq
end