gpt4 book ai didi

ruby-on-rails - 需要编程方法来检测 has_many 和 has_one 关系

转载 作者:行者123 更新时间:2023-12-04 03:42:15 25 4
gpt4 key购买 nike

我希望能够检测 ActiveRecord 模型对象上的 [has_one, has_many, Beings_to] 关系集的存在。换句话说,我希望能够从模型中的 ruby​​ 代码中检测它是否定义了上述关系之一。

除了对模型属性的蛮力搜索之外,还有什么聪明的方法吗?

最佳答案

看看 Rails 的 ActiveRecord::Reflection methods得到你正在寻找的东西。
Model.reflections将返回以关联名称为键的该模型关联的散列。 Model.reflect_on_all_associations将返回这些关联的数组,省略命名键。

所以,你可以做这样的事情:

Post.reflections.keys  # => [:comments, :author]
Post.reflections[:comments].marco # => :has_many
Post.reflections[:author].macro # => :belongs_to
# etc etc

看看从这些方法返回的数据,你应该能够弄清楚如何做你想做的事。

关于ruby-on-rails - 需要编程方法来检测 has_many 和 has_one 关系,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14363176/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com