gpt4 book ai didi

ruby-on-rails - 如何检查 ActiveRecord inverse_of 检测是否有效?

转载 作者:行者123 更新时间:2023-12-04 23:45:01 25 4
gpt4 key购买 nike

根据documentation for ActiveRecord::Associations::ClassMethods , ActiveRecord 可以自动判断一个 belongs_to一个模块的关联是 has_one 的倒数。或 has_many另一个模型的关联。

但是,我想确保此检测在某些我不确定的关联上确实成功(例如,我有一个 belongs_to,它与其他模型的名称不完全匹配,但设置了 class_name)。有没有办法检查 inverse_of检测是否应用于特定关联?理想情况下,我会在项目的测试套件中添加一些内容,以确保关联是双向的。

最佳答案

启动一个 Rails 控制台,然后运行:

> Rails.application.eager_load!

> ActiveRecord::Base.descendants.each {|m| puts "=== #{m} ==="; m.reflect_on_all_associations.each {|a| puts "#{a.name} => #{a.has_inverse?}"}}

它将转储一个列表,其中包含所有模型、它们的关联以及如果知道它们的逆,否则为“假”、nil 或空字符串(基于它未知的原因。)

关于ruby-on-rails - 如何检查 ActiveRecord inverse_of 检测是否有效?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30528637/

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