在 Rails 中设置 has_many_though 关系中的属性

set attributes in a has_many_though relationship in Rails

我有三个模型:CompanyUserEmployment。每个公司都有很多用户,通过他们的工作,一个用户可能通过他的工作属于几个公司。

现在,棘手的部分是:假设我的 User1 属于 2 家公司。他在第一个公司是 SUPER_ADMIN,但在第二个公司只是 BASIC_USER。定义他的角色的最佳方式是什么?

我以前在公司和用户之间有一个简单的 has_many 关系,这让我可以简单地为我的用户设置一个 is_admin 属性,但显然这不适用于新的 HMT关系。

我想为每个公司定义一个 ID 数组,其中包括每个管理员用户的 ID,但我很确定有更简洁的方法。

在上述情况下,您可以使用中间 table 即 Employment table 来保存用户及其关联公司的所有详细信息。

由于 Employment table 将同时拥有用户和公司的 ID,因此您可以轻松地保留与用户和公司相关的额外信息。只需在其中添加 role 列并使用它来获取信息