有很多通过关联没有在升级rails 3到rails 4的应用程序中工作



问题我的模型中有很多问题,由于某种原因,我一直收到这个错误,非常感谢您的帮助。

错误

ActiveRecord::HasManyThroughAssociationNotFoundError (Could not find the association #<Proc:0x0055e57679b2b8@/home/dev/testapp/app/models/work_order.rb:12> in model WorkOrder):

 has_many :demand_supply_links,
            :through => proc {"select * from demand_supply_link
                                     where supply_type = 'WO'" +
                                    " and supply_base_id = '" + "#{base_id}" +
                                    "' and supply_lot_id = '" + "#{lot_id}" +
                                    "' and supply_split_id = '" + "#{split_id}" + "'"}

我在哪里使用波谷关联

def setup(session)
  if !@work_order.nil?
    @demand_supply = @work_order.demand_supply_links.first
  end 
end

为什么不为其定义一个方法而不是has_many :through?例如

def demand_supply_links
    DemandSupplyLink.where(supply_type: 'WO',
                           supply_base_id: base_id,
                           supply_lot_id: lot_id,
                           supply_split_id: split_id)
end

这将执行与您请求的操作相同的操作,并且不涉及原始SQL。它还将比字符串串联更好地处理卫生问题。

最新更新