2011-02-11 56 views
3

我有一個屬於「Store」(has_many「products」)的模型「Product」。 我想驗證產品名稱的唯一性,但僅限於每個商店內。Rails validates_uniqueness_of:作用域上的外鍵

現在我有這樣的:

class Product < ActiveRecord::Base 
    belongs_to :store 
    validates_uniqueness_of :name, :scope => :store_id 
end 

當我運行保存的任何一款產品,現在我得到:

SQLite3::ConstraintException: column name is not unique 

我敢肯定有一個簡單的錯誤,我在這裏做。請教育我。

感謝,

哈里斯

回答

2

看起來是錯誤的SQLite來自未來,而不是Rails的。檢查數據庫級別的約束 - 可能你在:name上添加了唯一約束,而不是[:name,:store_id]。

+0

謝謝布萊恩,約束是問題。 – lightyrs 2011-02-11 21:06:08