9


1

Railsで関連モデルのリストを取得する

「has_many」「:foos」と「:bars」というオブジェクト「Person」があるとします。

インスタンスp( p = Person.new)が与えられた場合、どのリレーションシップが利用可能かをプログラムで決定するにはどうすればよいですか?

i.e. p.some_method ⇒ [" foo "、" bar "]

1 Answer


12


Active Record Reflectionsを使用できます(API here

あなたの例では:

p.class.reflect_on_all_associations(:has_many).collect {|a| a.name}