连接表时的ActiveRecord :: ConfigurationError

时间:2017-09-01 22:39:52

标签: ruby-on-rails activerecord

我收到了一些有点神秘的错误信息

  

ActiveRecord :: ConfigurationError 1

尝试执行@invoices = invoice.joins(pos: [vendor_id: 1])

我正在尝试调用属于供应商1的PO的所有发票。

我的模型设置如下: 供应商可以拥有多个采购订单,采购订单可以包含多个发票

class Vendor < ApplicationRecord
  has_many :pos

class Po < ApplicationRecord
  belongs_to :vendor
  has_many :items, :dependent => :destroy
  has_many :invoices

class Invoice < ApplicationRecord
  belongs_to :po

我认为ActiveRecord :: ConfigurationError是

  

在未正确配置关联或用户尝试关联时引发   使用偏移和限制与ActiveRecord :: Base.has_many或   ActiveRecord :: Base.has_and_belongs_to_many association。

但我无法弄清楚我的协会有什么问题。有什么想法吗?

1 个答案:

答案 0 :(得分:0)

我认为你的关联是好的...我认为你的陈述很糟糕,通常当我需要这样查询时,我会求助于一个小的SQL条款,因为它太复杂或太平了很难读懂。

试试这个(注意发票中的大写字母I):

vendor_id = 1
@invoices = Invoice.joins(:po).where("pos.vendor_id = ?", vendor_id)
相关问题