我有如下所示的关联设置,但我从Rails中收到错误/异常,告诉我我没有正确设置关联。
以下是我所拥有的:
class Case
has_many :case_accesses, as: :policy, inverse_of: :case, dependent: :destroy
has_many :agents, through: :case_accesses, source: :ownable, source_type: 'Agent'
end
class CaseAccess
belongs_to :policy, polymorphic: true
belongs_to :ownable, polymorphic: true
end
class Agent
has_many :case_accesses, as: :ownable, dependent: :destroy
has_many :cases, through: :case_accesses
end
Rails的错误:
找不到源关联" case"或:CaseAccess模型中的案例。尝试&has 39:has_many:个案,:通过=> :case_accesses,:source => &#39 ;.它是政策,联系还是拥有的?
我尝试将源设置为拥有,并且在我的查询中导致问题。我该如何建立这种关联?它是传统的,但在一方,policy
可以是Case
或Ppae
类型,ownable
可以是{{1}类型1}}或Agent
。
表格列:
User
答案 0 :(得分:1)
案例有许多case_accesses作为策略。 CaseAccess是策略,还是Case是CaseAccess的策略?
我相信你需要改变
has_many :case_accesses, as: :policy, inverse_of: :case, dependent: :destroy
到
has_many :case_accesses, inverse_of: :policy, dependent: :destroy
答案 1 :(得分:0)
这是做了什么:
class Case
has_many :case_accesses, as: :policy, inverse_of: :policy, dependent: :destroy
has_many :agents, through: :case_accesses, source: :ownable, source_type: 'Agent'
has_many :users, through: :case_accesses, source: :ownable, source_type: 'User'
end
class CaseAccess
belongs_to :policy, polymorphic: true
belongs_to :ownable, polymorphic: true
end
class Agent
has_many :case_accesses, as: :ownable, dependent: :destroy
has_many :cases, through: :case_accesses, source: :policy, source_type: 'Case'
end