我一直在搜索互聯網,並嘗試了很多不同的方法來解決這個問題,但我真的被卡住了。我相當新的軌道,所以我可能錯過了明顯的東西!Rails - 多態has_many:通過關聯 - '找不到模型中的源關聯'錯誤
我的問題是與涉及4個車型多態關聯:
(1)用戶,(2)審批,(3)收件人,(4)注意
用戶具有許多批准者,並具有許多收件人。用戶還可以爲審批者和收件人留下備註。註釋與審批者和收件人之間具有多態關聯:值得注意。我的模型如下所示:
Note.rb
class Note < ApplicationRecord
belongs_to :user
belongs_to :notable, polymorphic: true
end
Approver.rb
class Approver < ApplicationRecord
belongs_to :user
has_many :notes, as: :notable
end
Recipient.rb
class Recipient < ApplicationRecord
belongs_to :user
has_many :notes, as: :notable
end
User.rb
class User < ApplicationRecord
has_many :approvers, dependent: :destroy
has_many :recipients, dependent: :destroy
# This is the bit that I think is the problem:
has_many :notes, through: :approvers, source: :notable, source_type: "Note"
has_many :notes, through: :recipients, source: :notable, source_type: "Note"
end
基本上我希望能夠做
User.find(1).notes (...etc)
並顯示所有的音符從兩個審批和收件人的用戶。
例如,在批准者視圖中,我可以執行@ approver.notes.each並正確地遍歷它們。
我得到的錯誤信息是:「無法在模型收件人中找到源關聯:note_owner。嘗試'has_many:notes,:through =>:recipients,:source =>'。用戶或筆記之一?「
任何人都可以看到我失蹤!?