我尝试使用simple_form使我的表单视图更易读
现在看起来像这样:
<%= simple_form_for @some_object, url: some_url, :html => {:class => 'form-horizontal' } do |f| %>
<%= f.error_messages %>
<%= f.input :phone %>
<div class="form-row">
<%= f.submit "Submit", :class => 'btn btn-primary' %>
<a class="btn btn-link" href="<%= object.to_url %>" title="Cancel" data-event="post_cancel_click"><span>Cancel</span></a>
</div>
<% end %>
不幸的是,我收到SimpleForm :: FormBuilder的undefined method
error_messages':0xb385c948`
当我不使用error_messages时,表单会被渲染,但是当出现错误时,它不会显示。
答案 0 :(得分:1)
据我所知,这是正确的。简单形式不知道'error_messages
'是什么。检查文档时,它指出:
<%= simple_form_for @user do |f| %>
<%= f.input :username %>
<%= f.input :password %>
<%= f.button :submit %>
<% end %>
当您使用无效数据呈现表单时(例如,提交后),这将生成一个包含用户名和密码标签的整个表单,并默认情况下呈现错误。
我相信您的问题可能至少有两种解决方案:
1)您可以在simple_form.rb初始化程序文件中指定错误消息将被包装的标记,如下所示:
b.use :error, :wrap_with => { :tag => :span, :class => :error }
点击here了解更多信息或在文档中
2)使用f.error
帮助器,如docs