加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

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

发布时间:2020-12-17 02:48:29 所属栏目:百科 来源:网络整理
导读:根据 documentation for ActiveRecord::Associations::ClassMethods,ActiveRecord可以自动确定一个模块的belongs_to关联是否是另一个模型的has_one或has_many关联的逆. 但是,我想确保这个检测实际上成功地解决了一些我不确定的关联(例如,我有一个belongs_to,
根据 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?}"}}

它将转储包含所有模型的列表,它们的关联以及是否已知它们的反转,否则为“false”,nil或空字符串(基于它未知的原因).

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读