我有2个模型。 Report
和 Server
具有belongs_to 和has_many 关系。我使用 delegate
创建了一个访问器方法,它允许 Report
找到其关联的 Server.company_id
。现在,我想在 Report
上运行一个查询,它允许我找到与具有特定 0x2518122313435141 属性的特定 Report
相关联的所有 Server
这是我的两个模型。是的,我知道当前查询不起作用,因为 company_id
没有属性 Report
。
不,我不想将 company_id
存储在 company_id
内,因为该信息不属于 Report
。
报告
class Report < ActiveRecord::Base
belongs_to :server
delegate :company_id, :to => :server
class << self
def method(url, base_url)
#Report.where(company_id: 5)
end
end
end
服务器
class Server < ActiveRecord::Base
attr_accessible :company_id
has_many :reports
end
最佳答案
您可以执行如下查询:
Report.joins(:servers).where(:servers => {:company_id => 5})
对我来说,这是原始 SQL 的更干净的解决方案。
关于ruby-on-rails - rails : ActiveRecord query based on association value,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/19489017/