0

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

0 に答える 0