1

我尝试使用 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 %>

不幸的是,我收到undefined method了 SimpleForm::FormBuilder:0xb385c948 的 error_messages'

当我不使用 error_messages 时,会呈现表单,但发生错误时不会显示。

4

1 回答 1

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 }

在此处查看更多信息或在文档中

2) 使用 f.error助手,就像文档中描述的那样

于 2013-05-28T12:55:28.123 回答