私はこれらの協会を持っています
class Incident < Activerecord::Base
belongs_to :building
class Building < Activerecord::Base
has_many :incidents
belongs_to :contact
class Contact < Activerecord::Base
has_many :buildings
belongs_to :company
class Company < Activerecord::Base
has_many :contacts
事件をキーワード検索したい。この検索では、インシデントに関連する企業も検索する必要があります。
したがって、私はこのメソッドを作成しました
def self.filtered
includes(:building => :contact => :company).where("lower(unaccent(incidents.description)) ilike lower(unaccent('%#{q}%')) or lower(unaccent(companies.name)) ilike lower(unaccent('%#{q}%'))")
end
残念ながら、これは機能しません。
ActiveRecord::ConfigurationError - Association named 'company' was not found; perhaps you misspelled it?
理由はわかりませんが、「includes」メソッドは 2 つのレベルの関連付けを持つことができますが、3 つのレベルを持つことはできません。
どうすればこの問題を解決できますか?
ありがとう