84669 person learning
152542 person learning
20005 person learning
5487 person learning
7821 person learning
359900 person learning
3350 person learning
180660 person learning
48569 person learning
18603 person learning
40936 person learning
1549 person learning
1183 person learning
32909 person learning
举个例子,在表单中有这样的内容:
<dl> <dt> <%= f.label :subject %> </dt> <dd> <%= f.text_field :subject %> </dd> </dl>
在浏览器中显示成:
■Subject
(※注:■由CSS生成)
如果对表单进行验证,验证后再显示的格式就乱了,变成这样:
■ Subject
为什么会错位呢?
欢迎选择我的课程,让我们一起见证您的进步~~
You should override ActionView::Base.field_error_proc. It's currently defined as this within 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 }
You can override it by putting this in your application's class inside config/application.rb:
config/application.rb
config.action_view.field_error_proc = Proc.new { |html_tag, instance| "#{html_tag}".html_safe }
Restart rails server for this change to take effect.
(Full text copied from http://stackoverflow.com/questions/5267998/rails-3-field-with-errors-wrapper-changes-the-page-appearance-how-to-avoid-t)
Of course, it is more recommended to change it to this
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
You should override
ActionView::Base.field_error_proc
. It's currently defined as this withinActionView::Base
:You can override it by putting this in your application's class inside
config/application.rb
:Restart rails server for this change to take effect.
(Full text copied from http://stackoverflow.com/questions/5267998/rails-3-field-with-errors-wrapper-changes-the-page-appearance-how-to-avoid-t)
Of course, it is more recommended to change it to this