3

ここに投稿するのは初めてです!

多くのフィールドを持つフォームがあり、検証エラーが発生しない限りうまく機能しています...

「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 %>  
4

2 に答える 2

2

変化する

save!

エラーをスローします。

save

オブジェクトが正しく検証された状態で false または true を返すため、次の方法でエラーにアクセスできます。

@user.errors
于 2013-05-22T00:29:40.690 に答える
2

saveではなくsaveを呼び出す必要があります。if ステートメントが失敗する可能性があるため、オブジェクトのエラーオブジェクトにメッセージが含まれ、simple_formの後に各フォーム入力の横に表示できますrender :new

于 2013-05-22T02:59:49.467 に答える