1

Rails 3.2 アプリを作成しています。このアプリでは、サブスクリプション モデルと backend_user モデルの間にポリモーフィックな関連付けをセットアップしました。

BackendUser モデルでは、次のようになりました。

has_one :subscription, as: :subscribable

サブスクリプション モデルでは、次のようになりました。

belongs_to :backend_user, polymorphic: true

backend_user のサブスクリプションを取得したい場合は、これを実行すると問題なく動作します。

user = BackendUser.find(1)
user.subscription

私もやりたいことは、形勢を逆転させることです。このようなサブスクリプションの backend_user を取得したいのですが、nil が返されます。

sub = Subscription.find(1)
sub.backend_user

サブスクリプションテーブルでこれを取得しました:

t.integer  "subscribable_id"
t.string   "subscribable_type"

サブスクリプションのバックエンド ユーザー オブジェクトを取得するにはどうすればよいですか?

4

1 に答える 1

1

必要なもの:

sub = Subscription.find(1)
sub.subscribable

これにより、バックエンド ユーザー オブジェクトが得られます。

于 2013-09-12T07:25:30.610 に答える