Rails Triple Join

时间:2013-10-22 19:59:47

标签: ruby-on-rails ruby ruby-on-rails-3 activerecord

我有3个模型ReportServerPlatform。我需要执行一个查询,该查询涉及三个连接所有3个模型并基于此进行查询。但是每当我尝试三次加入

时,我都会收到以下错误

ActiveRecord :: ConfigurationError:名为' platform'没找到;也许你拼错了?

以下是我的模特

报告

class Report < ActiveRecord::Base

 belongs_to :server

 delegate :company_id, :to => :server

    class << self

        def method(url, base_url)
            Report.joins(:server).joins(:platform).where(:platforms => {:company_id => 5}).all
        end
    end

end

服务器

class Server < ActiveRecord::Base

 has_many :reports
 belongs_to :platform

end

平台

class Platform < ActiveRecord::Base

 attr_accessible :company_id

 has_many :servers

end

1 个答案:

答案 0 :(得分:5)

试试这个:(请注意splatform需要它,因为表名是复数形式的):

Report.joins(:server => :platform).where(:platforms => {:company_id => 5}).all