假设我有两个模型——用户和帐户。每个账号最多可以关联n个用户,一个用户只能关联一个账号。
说用户似乎很自然
belongs_to :account
和帐户
has_many :users
但是,在通过该 has_many 声明限制关联数量时,我不清楚最佳实践。我知道有一个 :limit 参数,但这只会限制返回的关联数量,而不是能够存在的数量。
我怀疑答案是使用类似 :before_add 的东西。但是,这种方法似乎只适用于通过 << 创建的关联。所以它会在你使用时被调用
@account.users << someuser
但如果你用过
@account.users.create
我还考虑过在 User 模型中使用 before_save 实现限制可能更实用,但在 User 模型中实现 Account 业务规则似乎有点偏离。
限制关联数量的最佳做法是什么?
编辑:每个帐户的 n 个用户将是存储在个人帐户中的一些业务数据,而不是在代码中随意浮动的直接幻数。