此问题涉及Rails ActiveRecord多对多关联和单表继承的情况。我正在努力使关联Patient
-> Membership
正常工作。所有其他关联均按预期工作。
请注意,Member
(如下)包含membership_id
和patient_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_1
为Patient
的实例。
假设membership_1
是Membership
的实例。
让它们通过member_1
的实例Member
进行关联。
我希望patient_1.memberships
返回membership_1
(包含在ActiveRecord关系中)。
相反,我收到以下错误:
ActiveRecord::StatementInvalid: PG::UndefinedColumn: ERROR: column line_items.member_id does not exist