I 다음과 같습니다 액티브 :: EagerLoadPolymorphicError : :이 다형성 merchant_owner와 가맹점에 가입하고 얻을 것을 시도하고 어떻게Arel 및 다형성 협회에 가입
class BaseReseller < ActiveRecord::Base
set_table_name "resellers"
acts_as_nested_set
has_many :merchants, :as => :merchant_owner, :dependent => :destroy
end
class IPSP < BaseReseller
end
class Agent < BaseReseller
end
class Reseller < BaseReseller
end
class Merchant < ActiveRecord::Base
belongs_to :merchant_owner, :polymorphic => true
end
class MerchantsController < ApplicationController
...
def index
...
@merchants = Merchant.joins(:merchant_owner) # breaks!
end
end
공지 사항 간절히의 다형성 연관 관계를로드 할 수 없습니다 merchant_owner.
@merchants = Merchant.includes (: merchant_owner)는 처음에는 작동하지만 뷰에서 @merchants 배열을 반복 할 때 같은 오류가 발생합니다. 지연된 릴레이션과 비 Arel 메소드가 호출 될 때만 실제로 DB로 이동합니다.
아이디어가 있으십니까? Arel은 다형성 연관 조인을 지원합니까? 해결 방법은 무엇입니까? 나는 순수한 SQL로 떨어질 수 있지만 이것은 돼지입니다.
감사
사실 "and '에'merchant_owner_type in '을 추가하여 조인을 보호하려고합니다. , 'Reseller', 'IPSP') " – njorden