18

Ruby on Rails でウィザード フォームを実行するための最適なオプションを理解しようとしています。理想的には、アプリケーションのサインアップに戻るボタンと次へのボタンがあり、ユーザーが段階的にデータを送信できるようにしたいと考えています。

したがって、ステップ 1 で連絡先情報を入力できます。完了したら、[次へ] をクリックしてステップ 2 に進み、支払い情報などを入力します。間違えた場合は、[戻る] をクリックして修正できます。必要な手順と必要でない手順がありますが、データベースにデータを送信してサインアップするための最後の手順を実行する必要があります。次に、完了後に戻って同じ方法で過去のステップに記入する能力が必要です。(例: プロファイルのリンクをクリックした場合、すぐにすべての手順を完了したくないため、同じ方法で手順を再度完了することができます。サインアップの手順を完了する前にスキップ ボタンが表示されるのでしょうか? )。また、修正または完了するまで次のステップに進むことができないように、どのステップが完了したかを検証する必要があります。

オプション 1) stackoverflow に関する他の質問で、オプションとして ajax が推奨されていることに気付きました。私が抱えている唯一の問題は、JavaScriptが無効になっているとユーザーがサインアップできないことです. 理想的には、Ruby on Rails にネイティブにしたいのですが、それを機能させるために必要なものは何でも喜んで使用します。

4

5 に答える 5

16

このRailsキャストエピソードをマルチステップフォームで見る必要があります。

http://railscasts.com/episodes/217-multistep-forms

巻き戻してもう一度見る準備をしてください。彼はとても速いです!

于 2010-11-19T10:07:32.490 に答える
15

レールでウィザードの構築を容易にするプラグインがいくつかあります。
Acts as WizardWizardlyが最も人気があるようです。
主なアイデアは、
* 最初のステップでモデルを作成し、
* その後のステップでそれを編集し、
* 各ステップで部分的な検証を適用し、*
モデルにある種のステート マシンを実装させることです。

于 2010-04-08T21:12:13.777 に答える
6

Wicked は Rails 3 に有望に見えます:

https://github.com/schneems/wicked

于 2012-06-12T17:58:18.363 に答える
5

このrailsキャストで説明されているwickedを見てください: http ://railscasts.com/episodes/346-wizard-forms-with-wicked?autoplay = true

于 2013-02-07T20:37:44.133 に答える
3

特に単純なマルチステップフォームの代替アプローチは、ステップに応じて単一のフォームの一部を単純に表示/非表示にすることです。この方法では、すべてのステップでデータベースにアクセスするのではなく、ユーザーが完了するまでオブジェクトを構築できる有効なインスタンスで準備ができています。

このようなアプローチでは、モデルを直接操作するのではなく、フォーム クラスを使用することが強く推奨されます ( http://blog.codeclimate.com/blog/2012/10/17/7-ways-to-decompose-fat-activerecord-models/ ) 。また、エラー メッセージのレンダリングを少し調整する必要があります。

長所: 1 つのデータベース ヒットのみ、無効なインスタンスを永続化する手間がかからない (null 列ではない、めちゃくちゃな属性の before_save 健全性チェック)、コールバック地獄がない

短所: ユーザーに送信される HTML の数が増える、エラー メッセージの微調整、エレガントで本当に便利なフォーム クラスを構築する必要がある

于 2013-04-02T14:42:10.350 に答える