0

remote_form_for タグを使用して送信するフォームがあります。

意見

<% form_remote_tag(:url => { :action => 'create' })  do %>

a bunch of fields

<% end %>

コントローラ

def create 

  if @greeting.can_save?
   respond_to do |format|
   format.html {redirect_to board_link(@board)}
   format.js #close the iframe and reload the parent
   end
  else
   respond_to do |format|
   format.html {redirect_to :action => 'new'}
   format.js #show the errors on the form
   end
  end
end

create.rjs

page << "parent.$.fancybox.close();"

正しい情報で送信されたフォームでは、すべて正常に機能します。しかし、無効な送信のエラー メッセージを表示する必要があります。

フォームが検証に合格しない場合、フォームにエラー メッセージを表示するにはどうすればよいですか?

前もって感謝します。

4

1 に答える 1

0

フォームを独自のパーシャルに引き出し、そのパーシャルをページにレンダリングして、フォームに一意の ID を与えます。

フォーム タグ内では、エラーを一覧表示するか、影響を受けるフィールドにクラスを追加するかに関係なく、任意の方法でエラーをレンダリングする必要があります。

RJS で次のようにします。

if @greeting.valid?
  page << "parent.$.fancybox.close();"

else
  page.replace 'my_form_id', :partial => 'greetings/form'
end

エラーが発生した場合、フォームが再レンダリングされます。フィールドが正しく入力されるように、@greeting インスタンス変数がこのフォームに渡されていることを確認してください。

于 2011-03-30T12:18:16.457 に答える