simple_form不显示错误

时间:2013-05-21 23:03:22

标签: ruby-on-rails simple-form

我第一次在这里发帖!

我有一个表单,有很多字段,除非发生任何验证错误,否则它很有用......

如果引发“validates_presence_of”,则会打开“ActiveRecord :: RecordInvalid in ...”页面并离开我的表单......

如何在同一页面/表格上显示错误(一如既往)?

一切顺利!

我的控制器

    if check_cadastro == "Válido para cadastro"

       code....

      if @usuario.save!
        session[:usuario_id] = @usuario.id
        cookies[:token] = @usuario.token
        render :action => "edit"
      else
        render "new"  
      end  
   end

我的观点

<%= simple_form_for @usuario do |f| %>
    <%= f.error_notification %>
    <div ><%= f.input :cnpj, input_html: { class: 'txt' } , :label => false %></div>
    <div ><%= f.input :razaosocial, input_html: { class: 'txt' } , :label => false %></div>
<% end %>  

2 个答案:

答案 0 :(得分:2)

更改

save!
抛出错误的

save

返回false或true,并且对象已正确验证,因此您可以使用以下命令访问错误:

@user.errors

答案 1 :(得分:2)

您应该调用save而不是save!,因此if语句可能会失败,您的对象将在其errors对象中包含消息,而simple_form可以将它们呈现在旁边render :new之后的每个表单输入。