22

如何获得模型的 has_many 关联?

例如,如果我有这个类:

class A < ActiveRecord::Base
  has_many B
  has_many C
end

我想要这样的方法:

A.get_has_many

那个回报

[B,C]

可能吗?谢谢!

4

3 回答 3

39

您应该使用 ActiveRecord反射

然后你可以输入如下内容:

A.reflect_on_all_associations.map { |assoc| assoc.name}

这将返回您的数组

[:B, :C]
于 2010-05-21T10:33:58.530 回答
3

例如,您可以尝试:

aux=Array.new
Page.reflections.each { |key, value| aux << key if value.instance_of?(ActiveRecord::Reflection::AssociationReflection) }

嗨 Pioz,祝你有美好的一天!

于 2010-05-21T09:05:36.533 回答
0

找到了解决方案:

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
于 2010-05-21T09:56:06.203 回答