在我的应用程序中,用户可以创建模块(“mods”以避免保留命名)并可以将它们分组到modulegroups中。
class User
has_many :modulegroups
has_many :mods, through :modulegroups
class Modulegroup
belongs_to :user
belongs_to :mod
class Mods
has_many :modulegroups
has_many :users, through :modulegroups
但是,用户还应该能够定义相对于他们的模块组出现的顺序模块。所以我想为每个模组添加一个属性,“等级”。
因为同一个模组在一个组中的排名可能与在另一个组中的排名不同,所以它不应该是 mods 表中的列,也不应该是用户表中的列。我将如何定义这些等级?
我能找到的最接近的答案是这个:has_many through form and added attribute to join table
但我的需求有点不同,我不想在模型中坚持使用丑陋的 SQL 语句。这似乎不对。