我有User
模型,其has_many Dish
到Recommendation
。我想強制執行Dish
的唯一性,以及Recommendation
的唯一性。在has_many中強制模型的唯一性雖然
我該怎麼處理ActiveRecord
?
在我dish.rb
:
validate_uniqueness_of :dish_name
我想擁有的是:當用戶推薦一道菜,創建一個新的菜,如果它不存在,然後創建推薦。如果這道菜已經存在,那麼只需創建建議並指向現有的菜。
我是否需要手動處理這些情況(即檢查控制器中是否存在dish
),或者ActiveRecord有辦法在內部處理它?
更新: validate_uniqueness_of :dish_name
只檢查並返回錯誤消息,如果dish
在那裏創建。它可能不會創建指向現有的dish
的新的recommendation
。
與'validate_uniqueness_of:dish_name' ActiveRecord的將驗證它,你不必擔心買了兩個菜,在你的'dish'表完全相同的名稱。如果你的屬性名稱是'name',那麼在驗證中把它放在':name'中。如果它真的叫做'dish_name',那麼就把它寫下來。 – Zippie 2013-03-13 14:06:17
Zippie:請檢查我更新的問題 – AdamNYC 2013-03-13 14:09:47