В моем приложении есть пример, где я могу назначить / получить доступ к ассоциации polymorphi c, но я не могу получить доступ к классу обратно из ассоциации polymorphi c,
class EmailCampaignSubscription < ActiveRecord::Base
belongs_to :subscribable, polymorphic: true
end
class Order < ActiveRecord::Base
has_one :email_campaign_subscription, as: :subscribable
end
Это работает EmailCampaignSubscription.last.subscribable
, но это не Order.last. email_campaign_subscription
. Также это не работает:
EmailCampaignSubscription.last.subscribable.email_campaign_subscription
By не работает, я имею в виду, что он возвращает nil
.
Это работает (возвращает правильную запись):
EmailCampaignSubscription.where(subscribable_type: "Order", subscribable_id: Order.last.id)
Я использую rails 4.2.11
, почему этот метод доступа обратно к email_campaign_subscription
не работает и как я могу исправить определение ассоциации, чтобы оно работало?
Обновление:
Я пробовал это:
has_one :email_campaign_subscription, class_name: 'EmailCampaignSubscription', as: :subscribable
Все еще получил nil
.