モデル1、モデル12、モード2の3つのモデルがあります。モデル 1 には、モデル 2 からモデル 12 までの多数のモデルがあります。
model2 から model12 までの存在を検証する必要があります。
model1 レールの編集済みレコードを保存しようとすると、model2 を持たないレコードが保存されます。検証は、モデル 1 に既に存在する DB エントリにモデル 2 の情報がない場合にのみ失敗します。
class model1 < ActiveRecord::Base
has_many :model12, :dependent => :destroy, :include => [:model]
has_many :model2, :through => :model12, :uniq => true
validates_presence_of :model12, :message => "must be present"
私は試した
validates_presence_of :model2, :message => "must be present"
これも機能していません。
私の場合、どういうわけかレールは保存されていないレコードではなく保存されたレコードをチェックしていると思います。そのため、既に保存されているレコードにモデル 2 があり、保存されていないレコードにモデル 2 がない場合、検証は失敗しません。ただし、保存されたレコードにモデル 2 がなく、保存されていないレコードにもモデル 2 がない場合は失敗します。
私の質問が明確でない場合はお知らせください。