电子邮件字段:
<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/