ruby-on-rails – 如何使用ActiveRecord将一个表中的两列指向另一个表中的同一列?

我冒着手掌到前额的风险,但我无法弄清楚如何使用Rails的ActiveRecord糖来做到这一点.

我有一个具有两列(submissionter_id和assignee_id)的票证表,每列应该从users表(特别是users表中的id列)引用不同的用户.我希望能够使用ActiveRecord的关联来执行ticket.submitter.name和ticket.assignee.email之类的操作.提交者和受让人只是不同关联名称下的用户对象.

我发现的唯一与我正在做的事情接近的是使用多态关联,但最后我很确定它并不是我真正需要的东西.我不会有多种类型,提交者和受让人都是用户,很可能是两个不同的用户.

任何帮助都会很棒.谢谢!

解决方法

class Ticket < ActiveRecord::Base
  belongs_to :submitter,:class_name => "User"
  belongs_to :assignee,:class_name => "User"
end

应该管用.

编辑:没有尝试,我不确定你是否需要:foreign_key参数.我的直觉不是,但它不会受到伤害.

再次编辑:抱歉,离开了用户 – >票务协会.你没有提到使用它们,如果我不打算在另一个方向上使用它们,我通常只会在一个方向上添加关联.

无论如何,尝试:

class User < ActiveRecord::Base
  has_many :assigned_tickets,:class_name => "Ticket",:foreign_key => "assignee_id"
  has_many :submitted_tickets,:foreign_key => "submitter_id"
end

相关文章

validates:conclusion,:presence=>true,:inclusion=>{...
一、redis集群搭建redis3.0以前,提供了Sentinel工具来监控各...
分享一下我老师大神的人工智能教程。零基础!通俗易懂!风趣...
上一篇博文 ruby传参之引用类型 里边定义了一个方法名 mo...
一编程与编程语言 什么是编程语言? 能够被计算机所识别的表...
Ruby类和对象Ruby是一种完美的面向对象编程语言。面向对象编...