RAILS:如何获取模型的 has_many 关联

发布于 2024-09-02 12:58:10 字数 255 浏览 4 评论 0原文

我如何获得模型的 has_many 关联?

例如,如果我有这个类:

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

我会像这样的方法:

A.get_has_many

返回

[B,C]

是否可能?谢谢!

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!

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

掩于岁月 2024-09-09 12:58:10

您应该使用 ActiveRecord 反射

然后你可以输入类似这样的内容:

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

这将返回你的数组

[:B, :C]

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]
山田美奈子 2024-09-09 12:58:10

例如,您可以尝试:

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

Hi Pioz,祝您有愉快的一天!

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!

北笙凉宸 2024-09-09 12:58:10

找到了解决方案:

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

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
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文