我研究了很多,但我找不到问题的答案。我的Rails应用程序上有以下设置:
class Group < ActiveRecord::Base
has_many :people
# ...
end
class City < ActiveRecord::Base
has_many :people
# ...
end
class Person < ActiveRecord::Base
belongs_to :city
belongs_to :group
# ...
end
人们拥有:role
或0
的专栏1
。
我想让至少有一个人role == 0
的所有群组和一个人role == 1
的群组。
有什么想法吗?顺便说一下,我正在使用Postgres。
答案 0 :(得分:1)
这是我刚刚在我的SQLite3数据库上测试的一个查询(我也相信也应该在Postgres上运行):
Group.select("groups.*").joins("LEFT JOIN people on groups.id = people.group_id").where("people.role==0 OR people.role==1").group("id")
这里我假设您已经在人员迁移中添加了外键group_id。希望这会有所帮助。