在我的Ruby on Rails应用程序中,我有一个User表和一个Foo表.我还有一个User_Foo表来存储交叉引用数据.
我已经将所有内容都连接起来以便我可以按照自己的意愿工作,但是,现在我需要确保同一个Foo不会多次分配给我的用户.
最好的方法是什么?
我假设我可以在我的模型中使用validates_uniqueness_of,但这不是特定于单个用户.我是否需要在更新时执行此操作?我本来希望有一个内置的"Ruby Way"来做这件事.
validates_uniqueness_of涵盖它,你只需要添加一个额外的选项来获得你想要的行为.
假设您有一个UserFoo模型来存储交叉引用关系(并且不做无模型).以下验证不允许重复的foo-user链接.
class UserFoo < ActiveRecord::Base belongs_to :user belongs_to :foo validates_uniqueness_of :foo_id, :scope => :user_id