rails owner多态路由问题(找不到源关联)

时间:2018-03-21 18:36:20

标签: ruby-on-rails ruby associations

我尝试使用现有模块,并添加通过它关联的多态所有权。然而,我无法完成所有设置,而且我不确定我错过了什么。

我有一个由客户(最终是一个团队)拥有的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.

1 个答案:

答案 0 :(得分:1)

要进行多态关联,您需要在数据库中使用两个字段才能使其正常工作。因此,遵循您的示例,priority_players表应该定义owner_id(整数)和owner_type(字符串)以使其正常工作。 owner_id将存储记录Ex的id。 10和owner_type记录id Ex的类模型。 &#34;顾客&#34 ;.希望它有所帮助。