0

使用 Rails 3.2.12 和 simple_form 2.0.4

在我们的用户模型上,我们有:

  validates_confirmation_of :email, :on => :create, :message => "should match confirmation"
  validates_confirmation_of :password, :message => "Your password confirmation does not match the password entered"

然而,到目前为止一切都很好,但是,如果您在这些字段中的任何一个上出现确认错误(即它们不匹配),simple_form 只会用错误类和错误消息标记常规字段。我的客户希望匹配的 _confirmation 字段以相同的红色样式/错误类进行标记。

有没有办法用 simple_form 做到这一点而无需进行重大的重新设计?

我认为这是:(密码类似)

<%= f.input :email_confirmation, :required => true, :label => "Verify Email Address", :input_html => {:rel => "tooltip", :title => "Please enter your email address again to prevent typing errors"} %>

谢谢

4

1 回答 1

0

您可以在 before_save( 或 before_create) 中执行此操作并进行自定义验证,然后执行

before_create :email_validation

def email_validation
  if email validation stuff
    self.errors.add( :email, "error message")
    self.errors.add( :email_confirmation, "error message")
  end
end

这样您就可以更好地控制您显示的错误消息类型。

于 2013-07-05T01:06:17.713 回答