我有一个用户模型:
class User < ActiveRecord::Base
has_many :products
end
和产品型号:
class Product < ActiveRecord::Base
belongs_to :user
end
Product表有一个名为product_id
的列,它是字母数字,我希望用户可以拥有许多产品,但在product_id
上应该是唯一的。我可以将product_id
上的索引添加为unique
,但这意味着其他用户无法拥有类似的产品。
要简化问题,每个 user_id
和 product_id
应该有一个唯一的条目。
在Rails中是否有任何传统方法可以实现相同的目标?
答案 0 :(得分:3)
答案 1 :(得分:2)
是的,您可以通过验证具有用户范围的product_id的唯一性来实现此目的。
validates :product_id,
uniqueness: {
scope: :user_id, message: 'No duplicate products are allowed.'
}