举个例子,在表单中有这样的内容:
<dl> <dt> <%= f.label :subject %> </dt> <dd> <%= f.text_field :subject %> </dd> </dl>
在浏览器中显示成:
■Subject
(※注:■由CSS生成)
如果对表单进行验证,验证后再显示的格式就乱了,变成这样:
■ Subject
为什么会错位呢?
欢迎选择我的课程,让我们一起见证您的进步~~
Vous devez remplacer ActionView::Base.field_error_proc. Il est actuellement défini comme ceci dans ActionView::Base :
ActionView::Base.field_error_proc
ActionView::Base
@@field_error_proc = Proc.new{ |html_tag, instance| "<p class=\"field_with_errors\">#{html_tag}</p>".html_safe }
Vous pouvez le remplacer en le mettant dans la classe de votre application à l'intérieur de config/application.rb :
config/application.rb
config.action_view.field_error_proc = Proc.new { |html_tag, instance| "#{html_tag}".html_safe }
Redémarrez le serveur Rails pour que cette modification prenne effet.
(全文抄袭自 http://stackoverflow.com/questions/5267998/rails-3-field-with-errors-wrapper-changes-the-page-apparence-how-to-avoid-t)
当然,更推荐改成这样
config.action_view.field_error_proc = Proc.new do |html_tag, instance| class_attr_index = html_tag.index 'class=' if class_attr_index html_tag.insert class_attr_index+7, 'error ' else html_tag.insert html_tag.index('>'), ' class="error"' end end
Vous devez remplacer
ActionView::Base.field_error_proc
. Il est actuellement défini comme ceci dansActionView::Base
:Vous pouvez le remplacer en le mettant dans la classe de votre application à l'intérieur de
config/application.rb
:Redémarrez le serveur Rails pour que cette modification prenne effet.
(全文抄袭自 http://stackoverflow.com/questions/5267998/rails-3-field-with-errors-wrapper-changes-the-page-apparence-how-to-avoid-t)
当然,更推荐改成这样