マルチステップウィザードの作成に使用されるWickedgemのRailscastを見たところです。
render_wizardこのgemを使用して、呼び出しでデータが何らかの方法で転送されるウィザードを作成できるかどうか疑問に思いました。私の最初のいじくり回しに基づいて、私はこれが可能であるとは思わない。私が解決したい問題は、最初のステップで国を取得し、2番目のステップでその国の人々を選択できるウィザードを作成することです。
この問題を解決する簡単な方法はありますか?助けてくれてありがとう!
マルチステップウィザードの作成に使用されるWickedgemのRailscastを見たところです。
render_wizardこのgemを使用して、呼び出しでデータが何らかの方法で転送されるウィザードを作成できるかどうか疑問に思いました。私の最初のいじくり回しに基づいて、私はこれが可能であるとは思わない。私が解決したい問題は、最初のステップで国を取得し、2番目のステップでその国の人々を選択できるウィザードを作成することです。
この問題を解決する簡単な方法はありますか?助けてくれてありがとう!
テーブルのない Ruby オブジェクトを使用できます。各 show ステップの前にそれをセッションにシリアル化し、各更新ステップの前にセッションからロードします (新しいパラメーターをマージします)。
before_filter :initialize_wizard, on: [:show, :update]
...
def initialize_wizard
@wizard = YourWizardTempModel.new
@wizard.update_attributes(session['wizard']) if session['wizard'].present?
@wizard.update_attributes(params['wizard']) if params['wizard'].present?
session['wizard'] = @wizard.as_json
end
次に、次のように country_id に基づいて人々の選択を組み立てる条件付きの before_filter を作成できます。
before_filter :populate_people, if: "step == 'select_people'"
...
def populate_people
People.find_by_country_id(@wizard.country_id)
end