2

validates_confirmation_ofRailsアプリで 壊れたようです。

私のモデルは次のようになります。

class Blark
  include ActiveModel::Validations
  attr_accessor :text
  validates_confirmation_of :text
end

これは私がそれを使うときに起こることです:

0 HAL work/nrb-brewery-management % rails c
Loading development environment (Rails 3.2.5)

1.9.3p0 :001 > b = Blark.new
 => #<Blark:0xae2e2d0> 

1.9.3p0 :002 > b.text = 'llama'
 => "llama" 

1.9.3p0 :003 > b.text_confirmation
 => nil 

1.9.3p0 :004 > b.valid?
 => true

なぜbここで有効なのですか?

4

1 に答える 1

4

Railsのドキュメントには次のように記載されています。

「注:このチェックは、password_confirmationがnilでない場合にのみ実行され、デフォルトでは保存時にのみ実行されます。確認を要求するには、確認属性のプレゼンスチェックを必ず追加してください。」

したがって、クラスにプレゼンスチェックを追加します。

class Blark
  include ActiveModel::Validations
  attr_accessor :text
  validates_confirmation_of :text
  validates_presence_of :text, :text_confirmation
end
于 2012-06-16T14:28:06.167 に答える