家、テナント、配管工の 3 つのモデルがあります。テナントは家に属しており、家にはテナントが 1 つあります。配管工からのデータを必要とするカスタムの EachValidator を使用したいと考えています。これを実現するために、私のテナント モデルでは次のようにします。
attr_accessor :plumber_limit
コントローラーでは、次のように設定しplumber_limitました。
house.tenant.plumber_limit = plumber.value
テナントの検証が起動すると、tenant.plumber_limit値は nil になり、結果として失敗します。のパブリック定義を追加しようとしましたplumber_limit。追加してみましattr_accessible :plumber_limitた。いろいろ表記してみました。tenantが子コンテキストで使用されているため、これは失敗していますか? もしそうなら、どうすれば を の検証に入れることができplumber_limitますtenantか?
リクエストにより、検証コードは次のとおりです。
class UniquePlumberAssignment < ActiveModel::EachValidator
def validate_each(record, attribute, value)
record.property.limit(record.plumber_limit).each |p|
...
end
end
end