1

検証したいフォームがあります。検証は他のいくつかのモデル オブジェクトのプロパティに基づいていますが、フォーム自体は ActiveRecord モデルに対応していません。

これを達成するためにActiveModelを使用することは可能でしょうか?

class Person < ActiveModel
  has_one :shoe
  validates :name, :length => { :maximum => self.shoe.size }
end

基本的に、別のモデル オブジェクトのプロパティに基づいてフォームを検証したいと考えています。とにかくこれは可能ですか?

4

1 に答える 1

2
class Person 
  include ActiveModel::Validations

  # has_one :shoe # This won't work

  validates :validates_name_length

  private
  def validates_name_length
    errors.add :name, 'too long' if name && name.length > shoe.size 
  end
end
于 2012-06-21T13:25:59.150 に答える