电子邮件字段:

<label for="job_client_email">Email: </label>
<input type="email" name="job[client_email]" id="job_client_email">

看起来像这样:

但是,如果电子邮件验证失败,它将变为:
<div class="field_with_errors">
  <label for="job_client_email">Email: </label>
</div>
<div class="field_with_errors">
  <input type="email" value="wrong email" name="job[client_email]" id="job_client_email">
</div>

看起来像这样:

如何避免这种外观变化?

最佳答案

您应该覆盖ActionView::Base.field_error_proc。当前在ActionView::Base中定义为:

 @@field_error_proc = Proc.new{ |html_tag, instance|
   "<div class=\"field_with_errors\">#{html_tag}</div>".html_safe
 }

您可以通过将其放在config/application.rb中的应用程序类中来覆盖它:
config.action_view.field_error_proc = Proc.new { |html_tag, instance|
  html_tag
}

重新启动Rails服务器以使此更改生效。

关于ruby-on-rails - Rails 3: “field-with-errors”包装器更改页面外观。如何避免这种情况?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/5267998/

10-12 14:47
查看更多