ruby-on-rails – 仅基于外键属性的关联类是什么?
发布时间:2020-12-16 19:51:26 所属栏目:百科 来源:网络整理
导读:短:我有一个外键属性,想知道该外键字段的类(或引用表)是什么. 语境: 给定2个表:users(id,[other fields])和issue(id,user_id,assigned_to,[other fields]) 这是我的问题的积极记录(不相关的部分被提取) class User ActiveRecord::Base ...endclass Issue
短:我有一个外键属性,想知道该外键字段的类(或引用表)是什么.
语境: 给定2个表:users(id,[other fields])和issue(id,user_id,assigned_to,[other fields]) 这是我的问题的积极记录(不相关的部分被提取) class User < ActiveRecord::Base ... end class Issue < ActiveRecord::Base belongs_to :user belongs_to :assigned_user,:foreign_key => 'assigned_to',:class_name => 'User' ... end 我想让用户读取更改日志记录.例如当更改分配的用户时,我想得到如下消息:Assigned to从Otto更改为Zoltan. ActiveRecord具有功能更改,这是一个很好的起点,但它只给我参考ID.要翻译成名字,我需要通过id读取用户. 关联:用户很简单,因为我只需遵循约定.但是如何获取相同的信息为assign_to属性(我想做一个通用的解决方案)?是否可以弄清我们是否对给定的属性进行关联?我们可以提取该关联的类吗? 解决方法
首先,您可以使用reflect_on_association获取所需关联的元数据.然后,从它的结果(这是一个MacroReflection后代),你可以找到类:
reflection = Issue.reflect_on_association(:assigned_user) reflection.class # => ActiveRecord::Reflection::AssociationReflection reflection.class_name # => 'User' 请参阅文档here和there. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |