Ruby on Rails 有超过 1 个不同的列外键到同一个表

Posted

技术标签:

【中文标题】Ruby on Rails 有超过 1 个不同的列外键到同一个表【英文标题】:Ruby on Rails having more than 1 different column foreign keyed to same table 【发布时间】:2017-11-07 14:00:41 【问题描述】:

我对 Ruby on Rails 很陌生,但我对 SQL 很熟悉。我目前正在考虑尝试为两个表建立关联......实际上更多,但这个例子应该回答我所有人的问题。这些是虚构的,但代表了我的问题,所以如果他们不遵循最佳实践,请不要介意......

Tables: USER, LOCA --- 他们曾经有有限的表名字符。

-LOCA

LOCATIONID - PK

-用户

用户 ID - PK; LIVES_LOCATION - FK (LOCATIONID); WORKS_LOCATION - FK (LOCATIONID); MANAGERID.......等等

如何在 Ruby on Rails 中将具有 belongs_to 和 has_many 的类与正确的 foreign_key 名称添加到正确的列中?

【问题讨论】:

USER 和 LOCA 之间的关联是什么? 用户有居住地和工作地。 LOCA 是带有 locationid 的位置 guides.rubyonrails.org/association_basics.html 欢迎来到 Stack Overflow。请阅读“How to Ask”和“minimal reproducible example”及其链接页面。你的问题问得不好。格式化非常重要,因为它可以帮助我们理解您的问题,而这反过来又可以帮助您。 SO上的问题不仅是为了帮助你,也是为了帮助以后遇到类似问题的其他人,所以你必须向我们提供足够的信息,写得简洁明了,帮助我们和他们理解。 无知/不知情并不愚蠢。 (但是,关于您问题的措辞,您现在可以通过链接通知您。) 【参考方案1】:
class User
  belongs_to :lives, class_name: 'Loca', foreign_key: 'lives_location'
  belongs_to :works, class_name: 'Loca', foreign_key: 'works_location'

  ...
end

class Loca
  has_many :users

  ...
end

【讨论】:

所以外键是当前表的列!非常感谢

以上是关于Ruby on Rails 有超过 1 个不同的列外键到同一个表的主要内容,如果未能解决你的问题,请参考以下文章

Ruby on rails - 2 种用户类型

使用 AJAX 请求下载文件数据 - ruby​​ on rails 3

在 PHP 中匹配 128 个字符的密码哈希 - 使用 Ruby on Rails 加密

Ruby on Rails 日期查询和修改的方法--数据库常用操作

在 Ruby on Rails 3 应用程序中实现搜索?

如何根据从下拉列表中选择的 CATEGORY 来控制 NEW/EDIT 视图中的列标题。带有 MYSQL 的 Ruby on Rails