ruby on rails - rails - FERROCARRIL: Cómo obtener muchas asociaciones has_ de un modelo
rails has many (3)
Deberías estar utilizando reflections ActiveRecord.
Entonces puedes escribir algo como esto:
A.reflect_on_all_associations.map { |assoc| assoc.name}
que devolverá su matriz
[:B, :C]
¿Cómo puedo obtener las asociaciones has_many de un modelo?
Por ejemplo si tengo esta clase:
class A < ActiveRecord::Base
has_many B
has_many C
end
Me gustaría un método como este:
A.get_has_many
esa vuelta
[B,C]
¿Es posible? ¡Gracias!
Encontré las soluciones:
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
Por ejemplo puedes probar:
aux=Array.new
Page.reflections.each { |key, value| aux << key if value.instance_of?(ActiveRecord::Reflection::AssociationReflection) }
Hola Pioz, que tengas un buen día!