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

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.

(编辑:李大同)

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

    推荐文章
      热点阅读