1

したがって、PersonモデルとChildモデルがあるとします。

class Person < ActiveRecord::Base
    has_many :children
    accepts_nested_attributes_for :children
end

class Child < ActiveRecord::Base
    belongs_to :parent, :class_name => "Person"
    validates_presence_of :name
end

ネストされたフォームを使用して、2つの新しい子を持つPersonを保存すると、子の1つが検証に失敗すると、トランザクション全体が失敗します(つまり、ロールバックされます)。

この検証の失敗を無視して、有効な1人と1人の子を保存するにはどうすればよいですか?1人の子が検証に失敗したため、トランザクション全体が失敗することは望ましくありません。有効なレコードを保存したいだけです...

感謝します、ありがとう!

PS:reject_ifは、データベースに保存するまで無効なレコードにアクセスできる必要があるため、オプションではない場合に使用します(その時点で、無効なレコードを拒否します)

4

1 に答える 1

0

「accepts_nested_attributes_for :children」なしで解決し、単一のオブジェクトをコントローラーに個別に保存できます...

于 2010-10-19T13:32:23.667 に答える