我已经构建了一个Rails应用程序,其中包含有关美国国会的数据。我有立法者模型和比尔模型:
class Legislator < ActiveRecord::Base
has_many :bills
end
class Bill < ActiveRecord::Base
belongs_to :legislator
end
立法者所赞助的法案与该立法者有关。立法者还有一个“党”属性,即“R”,“D”或“我”
我希望得到一份由特定政党所有立法者赞助的法案清单,例如民主党赞助的所有法案。这个查询会是什么样的?
答案 0 :(得分:2)
Bill.joins(:legislator).where(legislators: {party: "I"})
但我建议你在立法者和比尔上写下范围
# class Legislator
scope :by_party, ->(party) do
where(party: party)
end
# class Bill
scope :sponsored_by_party, ->(party) do
joins(:legislator).merge(Legislator.by_party(party))
end
然后你可以写
Bill.sponsored_by_party("I")
答案 1 :(得分:1)
加入并将查询作为哈希
Bill.joins(:legislator).where(legislators: {party: 'D'})