用户说,这似乎很自然
belongs_to :account
和帐户
has_many :users
但是,在通过has_many声明来限制关联数量时,我不清楚最佳实践.我知道有一个:limit参数,但这只限制了返回的关联数,而不是可以存在的数量.
我怀疑答案是使用类似:before_add.但是,这种方法似乎只适用于通过<<<< .所以当你使用时它会被调用
@account.users << someuser
但如果你使用的话就没有
@account.users.create
我还认为在User模型中使用before_save实现限制可能更实际,但似乎在User模型中实现Account业务规则有点偏差.
限制关联数量的最佳做法是什么?
编辑:每个帐户的n个用户将是存储在各个帐户中的一些商业数据,而不是在代码中无处不在的直接幻数.
解决方法 首先,如果您的users表具有外键account_ID,那么您需要使用class User belongs_to :accountend
通过这种方式,您将确保用户只能与一个帐户关联.
如果您想限制该帐户可以拥有,例如最多3个用户,然后您可以定义以下验证:
class User valIDates_each :account do |user,attr,value| user.errors.add attr,"too much users for account" if user.account.users.size >= 3 endend
因此,如果帐户已有3个用户,您将无法为帐户创建新用户.
总结以上是内存溢出为你收集整理的ruby-on-rails – 限制has_many关系中关联数量的最佳实践?全部内容,希望文章能够帮你解决ruby-on-rails – 限制has_many关系中关联数量的最佳实践?所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)