これは以前に機能していました
考慮すべき点が 3 つあります。
これらはすべて、親モデルからの検証エラー メッセージを制御またはアクセスする機能を提供します。問題は、モデルが「分離」されて独立しているため、そうしない限りエラーメッセージが表示されないことだと思います
これが私がすることです
関連付けられていることを検証します
#app/models/article.rb
class Article < ActiveRecord::Base
has_many :photos
validates_associated :photos
accepts_nested_attributes_for :photos
end
私はこれを怒りで使用したことはありません-関連するモデルからのエラーメッセージを照合し、@article
オブジェクトを介してエラーを表示できるようにする必要があります。これが機能するかどうかはわかりませんが、Rails コア開発チームによって推奨されているようです。
モデルに他のモデルとの関連付けがあり、それらも検証する必要がある場合は、このヘルパーを使用する必要があります。オブジェクトを保存しようとすると、有効ですか? 関連するオブジェクトごとに呼び出されます。
--
次の場合に拒否
reject_if
でメソッドを使用できますaccepts_nested_attributes_for
。これは独自のメッセージを提供しますが、関連するデータのみを対象としています (IE は子モデルの検証に基づいていません)。
#app/models/article.rb
class Article < ActiveRecord::Base
...
accepts_nested_attributes_for :photos, reject_if: {|attributes| attributes[:x].blank? }
end
また、これでメッセージが届かないようです! (選択肢として残しておきます)
--
Inverse_Of
これが、連想エラー メッセージを表示する方法です。基本的に、モデルが相互にデータにアクセスできるようになり、直接参照できるようになります。
#app/models/article.rb
class Article < ActiveRecord::Base
has_many :photos, inverse_of: :article
end
#app/models/photo.rb
class Photo < ActiveRecord::Base
belongs_to :article, inverse_of :photos
end
これにより、オブジェクトに入力する必要があるデータを呼び出すことができerrors
ます。