モデルのhas_manyアソシエーションを取得するにはどうすればよいですか?
たとえば、私がこのクラスを持っている場合:
class A < ActiveRecord::Base
has_many B
has_many C
end
私はこのような方法をします:
A.get_has_many
そのリターン
[B,C]
出来ますか?ありがとう!
モデルのhas_manyアソシエーションを取得するにはどうすればよいですか?
たとえば、私がこのクラスを持っている場合:
class A < ActiveRecord::Base
has_many B
has_many C
end
私はこのような方法をします:
A.get_has_many
そのリターン
[B,C]
出来ますか?ありがとう!
ActiveRecordリフレクションを使用する必要があります。
次に、次のように入力できます。
A.reflect_on_all_associations.map { |assoc| assoc.name}
配列を返します
[:B, :C]
たとえば、次のことを試すことができます。
aux=Array.new
Page.reflections.each { |key, value| aux << key if value.instance_of?(ActiveRecord::Reflection::AssociationReflection) }
こんにちはピオグリタゾン、良い一日を!
解決策を見つけました:
def self.get_macros(macro)
res = Array.new
self.reflections.each do |k,v|
res << k if v.macro == macro.to_sym
end
return res
end