我似乎打破了validates_confirmation_of

时间:2012-06-16 14:12:04

标签: ruby-on-rails

我似乎在我的rails应用程序中损坏了validates_confirmation_of

我的模型看起来像这样:

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在这里有效?

1 个答案:

答案 0 :(得分:4)

Rails documentation州:

“注意:仅当password_confirmation不是nil时才执行此检查,默认情况下仅在保存时执行。要确认,请确保为确认属性添加状态检查:”

因此,请向您的班级添加在场状态检查,例如

class Blark
  include ActiveModel::Validations
  attr_accessor :text
  validates_confirmation_of :text
  validates_presence_of :text, :text_confirmation
end