2016-08-31 15 views
1

私は基底クラスEntryを持っていて、多くの異なるサブクラスを持っています。以下のような:Rails:get belongs_to class_name

class Entry < ActiveRecord::Base 
    ... 
end 

class UserEntry < Entry 
    belongs_to :target, class_name: User 
end 

UserEntryクラスのtarget協会のclass_nameを取得する方法はありますか?それはUserを返す必要があります。

答えて

1

私が探しているものが見つかりました:ActiveRecord::Reflectionクラスメソッド(前の回答は役に立ちますが

私は:targetの関連付けの詳細を取得するためにreflect_on_associationクラスメソッドを使いました。だから、私が探していたものを得るために、私はした:Userクラスを返した

UserEntry.reflect_on_association(:target).klassクラスを返しました。

2

あなたはclass_name除いて、正しいことをやっているがARマップに十分にスマートではありませんので、あなたがbelongs_toprimary_keyforeign_keyを設定していることを確認しString、ないClass

class UserEntry < Entry belongs_to :target, class_name: 'User' end

+0

文字列である必要はありません。 – Ruslan

0

する必要がありますuser_idtarget_id

関連する問題