我有2个模型。 ReportServer 具有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/

10-15 13:47