Rails多对多关联与单表继承

时间:2019-06-25 12:53:08

标签: ruby-on-rails ruby activerecord associations single-table-inheritance

此问题涉及Rails ActiveRecord多对多关联和单表继承的情况。我正在努力使关联Patient-> Membership正常工作。所有其他关联均按预期工作。

请注意,Member(如下)包含membership_idpatient_id的外键字段。

到目前为止,我已经尝试了各种选项的组合,但是还没有设法找到正确的设置来使关联起作用

class LineItem < ApplicationRecord
end

class Membership < LineItem
  has_many :members, dependent: :destroy, foreign_key: :line_item_id, inverse_of: :membership
  has_many :patients, through: :members
end

class Member < ApplicationRecord
  belongs_to :membership, foreign_key: :line_item_id, inverse_of: :members
  belongs_to :patient, optional: true
end

class Patient < ApplicationRecord
  has_many :members
  has_many :memberships, through: :members
end

patient_1Patient的实例。 假设membership_1Membership的实例。 让它们通过member_1的实例Member进行关联。

我希望patient_1.memberships返回membership_1(包含在ActiveRecord关系中)。

相反,我收到以下错误: ActiveRecord::StatementInvalid: PG::UndefinedColumn: ERROR: column line_items.member_id does not exist

0 个答案:

没有答案