class Foo
belongs_to :bar
どのようなクラスがbelongs_to
の関係であるかを知る良い方法はありますか?Railsでbelongs_toクラスの名前を取得する方法は?
この場合、Bar
です。私はこのための組み込みメソッドがあります確信しているが、回避策として、あなたがFoo
の属性を見ることができ、その規則を悪用
class Foo
belongs_to :bar
どのようなクラスがbelongs_to
の関係であるかを知る良い方法はありますか?Railsでbelongs_toクラスの名前を取得する方法は?
この場合、Bar
です。私はこのための組み込みメソッドがあります確信しているが、回避策として、あなたがFoo
の属性を見ることができ、その規則を悪用
.klass:(バー)
だけ Foo.reflect_on_associationを試してみてくださいそのうちの一つはbar_id
です:組み込みの方法は
Foo.attribute_names.grep(/.*_id/).map{ |bar| bar[0..-4].classify.safe_constantize }
更新
Foo.reflect_on_all_associations(:belongs_to).map(&:name)
この回答のソースが必要な場合:http://apidock.com/rails/ActiveRecord/Reflection/AssociationReflection/klass –
':bar'を使う方法を知っていますか?それが問題のポイントです。 ':bar'を得る方法。 –
どこから始めるべきか分かりましたので、あなたが実際に望むものへの答えを拡大する方が簡単です: 'Foo.reflect_on_all_associations.find_all {| a | a.is_a? ActiveRecord :: Reflection :: BelongsToReflection} .map(&:name) ' – Leito
ハハ。私は良い方法がなければならないことを知っていた。 –