how I can get the has_many associations of a model?
For example if I have this class:
class A < ActiveRecord::Base
has_many B
has_many C
end
I would a method like this:
A.get_has_many
that return
[B,C]
Is it possible? Thanks!
how I can get the has_many associations of a model?
For example if I have this class:
class A < ActiveRecord::Base
has_many B
has_many C
end
I would a method like this:
A.get_has_many
that return
[B,C]
Is it possible? Thanks!
You should be using ActiveRecord reflections.
Then you can type something like this:
A.reflect_on_all_associations.map { |assoc| assoc.name}
which will return your array
[:B, :C]
For Example you could try :
aux=Array.new
Page.reflections.each { |key, value| aux << key if value.instance_of?(ActiveRecord::Reflection::AssociationReflection) }
Hi Pioz , Have a Nice Day!
Found the solutions:
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
© 2022 - 2024 — McMap. All rights reserved.
has_many
associations, it is possible to pass a parameter:A.reflect_on_all_associations(:has_many).map(&:name) #=> [:B, :C]
– Wantage