我尝试使用现有模块,并添加通过它关联的多态所有权。然而,我无法完成所有设置,而且我不确定我错过了什么。
我有一个由客户(最终是一个团队)拥有的priorityPlayer。
class PriorityPlayer < ActiveRecord::Base
has_paper_trail
belongs_to :owner, polymorphic: true, touch: true
validates :owner, presence: true
validates :player, presence: true
end
在我的客户模型中,我有
has_many :priority_players, as: :owner
我的架构设置为
create_table "priority_players", force: :cascade do |t|
t.datetime "created_at", null: false
t.integer "customer_id"
有人知道我在这里缺少什么吗?凭借我现在所拥有的,我在
收到错误Could not find the source association(s) :pharmacy in model PriorityPharmacy.
答案 0 :(得分:1)
要进行多态关联,您需要在数据库中使用两个字段才能使其正常工作。因此,遵循您的示例,priority_players表应该定义owner_id(整数)和owner_type(字符串)以使其正常工作。 owner_id将存储记录Ex的id。 10和owner_type记录id Ex的类模型。 &#34;顾客&#34 ;.希望它有所帮助。