将simple_form与bootstrap一起使用 - 未定义的方法'error_messages'

时间:2013-05-28 12:33:51

标签: ruby-on-rails-3 twitter-bootstrap simple-form

我尝试使用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时,表单会被渲染,但是当出现错误时,它不会显示。

1 个答案:

答案 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

中所述