2016-05-31 146 views
0

我有好几个型号,它们相互连接:未定义的方法ActiveRecord_Associations_CollectionProxy

class InsurerPayment < ActiveRecord::Base 
    belongs_to :insurer 
    belongs_to :company 
    has_many :contracts 
end 

class Insurer < ActiveRecord::Base 
    belongs_to :company 
    has_many :contracts 
    has_many :insurer_payments, dependent: :destroy 
end 

class Contract < ActiveRecord::Base 
    belongs_to :company 
    belongs_to :insurer 
    belongs_to :insurer_payment 
end 

当我在insurer_payments_controllercommissions = current_company.contracts.pluck(:commission).sum,我拿提成的总和所有与我目前的合同公司。但我需要得到属于我现在公司的保险公司佣金的总和。做类似commissions = current_company.insurers.contracts.pluck(:commission).sum给我一个错误:未定义的方法`合同'#Insurer :: ActiveRecord_Associations_CollectionProxy:0x007f92450f79c0。我怎样才能得到我需要的结果?谢谢你。

回答

1

你可以试试这个:

current_company.insurers.map { |ins| ins.contracts.pluck(:commission).sum} 

您收到此类型的错误,因为当你打current_company.insurers是返回一个数组,你打这个阵列上合同这是不正确。

+0

非常感谢,它帮助 –