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にはトランザクションがありません。 –