模型名称以外的多态关联

时间:2017-12-08 07:35:56

标签: ruby-on-rails associations polymorphic-associations

我有两种模式:

Payment.rb

belongs_to :payer, polymorphic: true, required: true
belongs_to :payable, polymorphic: true
belongs_to :sponsor, -> { where(payments: { payable_type: 'Sponsor' }) },
                          foreign_key: 'payable_id'`

Sponsor.rb

has_many :payments, as: :payable, dependent: :destroy

我可以使用payable_type“赞助商”和payable_id“sponsor_id”创建付款。
我可以访问@payment.payable

结果是paid_type是赞助商。

我希望将应付款类型存储为sponsorship,并将其模型显示为赞助商。如果我将访问@payment.payable

此结果应为paid_type为赞助。

欢迎任何建议尽快。

1 个答案:

答案 0 :(得分:0)

我无法想到这一点。

class Sponsor < ActiveRecord::Base
end

class Sponsorship < Sponsor
end