假設您有User has_many Books
。每本書都有一個名字字段。如何在不保存Rails的情況下驗證字段的唯一性?
用戶輸入他們的書籍,並將其作爲一組名稱提交給應用程序。名稱陣列將取代任何現有書籍。
如果更新失敗,則不應更改書籍。
class Book
belongs_to :user
validates_uniquness_of :name, scope: [:user]
如何檢查每本書的有效性而不保存?
例如:
['Rails Guide', 'Javascript for Dummies']
將是有效的。
['Javascript for Dummies', 'Javascript for Dummies']
將無效。
params[:books].each{| b | Book.new(b).valid? }
將無法正常工作,因爲該書必須保存以獲得唯一性。
Mongoid
您還需要數據庫中的唯一性約束,然後您還需要捕獲「ActiveRecord :: RecordNotUnique」。 –
這是一個很好的方式,但Mongo沒有交易。 –