家、テナント、配管工の 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