0

ユーザーがいるウィザードの現在のステップに対応するページにのみユーザーが移動できるユーザー作成ウィザードをセットアップしようとしています。

ステート マシンの機能を整理しました。現在の状態は DB に格納されます。これは問題ではありません

問題は、ユーザーを正しいページにリダイレクトする方法です。

最初に before フィルターを試しましたが、リダイレクト ループが発生しました。これに対する解決策は厄介でした。

次に試したのは、redirect_to を使用してリクエストをアクションに送信し、アクションが適切なページにリダイレクトすることです。2 回リダイレクトしたため、DoubleRenderError が発生しました。redirect_to は新しい http リクエストだと思っていましたが、そうではないようです。

この種の機能をルートに直接設定できるかどうか疑問に思っています。現在の状態を取得するには、DB にアクセスする必要があります。これがどのように行われるのか、それが可能かどうかさえわかりません

何か案は?

ありがとうございました

4

3 に答える 3

2

あなたの質問を完全に理解しているかどうかわかりません。

ただし、二重のレンダリング エラーが発生した理由は、単純な redirect_to ruby​​ コードが実行され続けた後です。ある時点で、このコードはデータを再度レンダリングしようとしました (したがって、DoubleRenderError)。

あなたは使用したいかもしれません:

redirect_to [...] and return false

これにより、以降のコードが実行されなくなり、DoubleRenderError が発生しなくなります。

幸運を!

于 2009-03-29T23:41:13.013 に答える
0

この問題は昨日経験したものと同じだと思います(Im on Rails 2.1)。私の解決策はブログにあります。とても簡単です。

于 2010-08-05T10:11:43.397 に答える
0

この定義のアプローチ:constraints =>まさにあなたが探していたものであると思います

于 2012-04-09T01:46:09.727 に答える