Ruby on rails 你有很多火车吗

Ruby on rails 你有很多火车吗,ruby-on-rails,Ruby On Rails,我有一个“用户”表,其中存储了我所有的网站用户,其中一些是技术人员。users表有“first_name”和“last_name”字段以及其他字段 另一个表名为“service_tickets”,其中有一个来自用户的外键,名为technician_id。这给了我一个真正的问题,因为当我查看service_tickets表时,相关用户实际上是一名技术人员。这就是为什么service_tickets表有一个technician_id而不是user_id字段 我正在努力完成这样的事情: t = ser

我有一个“用户”表,其中存储了我所有的网站用户,其中一些是技术人员。users表有“first_name”和“last_name”字段以及其他字段

另一个表名为“service_tickets”,其中有一个来自用户的外键,名为technician_id。这给了我一个真正的问题,因为当我查看service_tickets表时,相关用户实际上是一名技术人员。这就是为什么service_tickets表有一个technician_id而不是user_id字段

我正在努力完成这样的事情:

t = service_ticket.find_by_id(7)
t.technician.first_name        # notice how I don't do t.user.first_name
这在rails中可能吗?我似乎无法让它工作


谢谢你的帮助

在您的服务票据模型中,您可以添加一个技师关系,如

belongs_to :technician, :class_name => "User"

在本例中,它将使用用户模型作为技术人员id

感谢您的快速回复,不幸的是,当我将建议的约束输入到模型中,然后在视图中键入以下代码时:我得到以下错误:“未定义方法‘first_name’表示nil:NilClass”有什么想法吗?我必须在用户模型中添加除“has_many:service_tickets”之外的任何内容吗?顺便说一句,用户模型中确实有一个名为“first_name”的字段。重新启动服务器后,您的代码工作了!不要介意我以前的帖子。非常感谢。顺便说一句,我在网上读到的内容的末尾加了一个:foreign_key设置,如下所示:belishing_to:technology,:class_name=>“User”,:foreign_key=>“technology_id”可以吗?你不需要添加
foreign_key
选项,除非belishing_to“xxx”与你在外键表中所称的不同。在您的情况下,使用
归属于:technology
要求在维修通知单中有一个名为technology\u id的字段。如果要在维修通知单表中将其称为“tech\u id”,则需要:foreign\u key=>“tech\u id”。更多信息,请参阅。