2009-07-07 7 views
0

私はRailsアプリケーションに標準の形式を持っています。サーバ側の検証ロジックを使用してRailsにJavascriptの確認ダイアログを表示

[送信]ボタンをクリックすると、JavaScriptの確認ダイアログが表示されることがあります。このキャッチは、要求がサーバーに送信される前にJavascriptでこれを行うのではなく、この確認をサーバー側に表示するかどうかを判断する必要があることです。

これに最適な解決策は何ですか?

AJAXを使用してform_forタグをremote_form_forタグに変更する必要がありますか?私はコントローラの確認ダイアログを表示するためにformat.js応答を受け取ることができますが、ちょっと混乱します。

Javascriptでこれを行うのを忘れて、中間の確認ページを表示するだけでいいですか?

+0

解決策が見つかったのですか? –

答えて

0

私はRuby on Railsに精通しないんだけど、クライアントとサーバ間の一般的な流れは、私の意見では、次のようになります。だから、基本的には、サーバー上のスクリプトは、単純にレスポンスを返すよう

# Client request is > 
# Server response is < 
> /perform/action?arg1=abc 
< {"perform":"action","confirmation_required":true} 
> /perform/action?arg1=abc&confirm=1 

クライアントにアクションを確認して要求を再送信する必要があることをクライアントに伝え、クライアントはダイアログを表示し、OKが押された場合、ユーザーが確認したことを示すフラグを要求に追加します。

0

確認ダイアログを表示するかどうかを示すために、コントローラメソッドでフラッシュにフラグを設定させることができます。あなたのビューコードは、このフラグが存在するかどうかに依存します。

+0

フォームが送信される(フォームに入力されたユーザーデータに基づいている)まで、確認ダイアログを表示するかどうかはわかりません。 – Olly

+0

フォームがすでに送信されている場合は、[送信]ボタンをクリックしたときに確認ダイアログをどのように表示できますか?その時点ですでに遅すぎる。 –