2017-09-01 81 views
1

我得到的的ActiveRecord ::加盟時ConfigurationError表

幾分神祕的錯誤消息

的ActiveRecord :: ConfigurationError 1

試圖執行@invoices = invoice.joins(pos: [vendor_id: 1])

我想,當調用屬於供應商1的所有PO的所有發票。

我的模型設置如下: 個供應商可以有許多采購訂單,和POS可以有許多發票

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關聯。

但是我很難弄清楚我的關聯有什麼問題。有任何想法嗎?

回答

0

我認爲你的關聯是可以的......我認爲你的陳述是不好的,通常當我需要這樣查詢時,我會訴諸一點SQL語句,因爲它太複雜或難以閱讀除此以外。

試試這個(注意是大寫的我在發票):

vendor_id = 1 
@invoices = Invoice.joins(:po).where("pos.vendor_id = ?", vendor_id) 
+0

感謝您的幫助!這或多或少的工作,儘管有一個小的語法調整: @invoices = Invoice.joins(:po).where(「pos.vendor_id =?」,vendor_id) – Coalsand

+0

很酷......很高興幫助。你會將答案標記爲正確嗎? –