新しい情報を取り込むための多段階フォームを作りたい。名前/連絡先情報を収集したいページ、病歴を収集したい次のページ、人口統計情報を収集したいページ。
Wizard gem をインストールし、専用コントローラーを生成しました。私が見たすべてのチュートリアルは、デバイスとサインアッププロセスに適用されるため、コントローラーのアクションとインスタンス変数、およびそれらをどのように記述すべきかについて少し迷っています。
これをすべて配線する方法を学ぶのに役立つかもしれないサインアップ以外のチュートリアルを誰かが持っているかどうか疑問に思っていました.
任意のポインタまたは支援をいただければ幸いです。
編集:
私の問題は、ウィザードのコントローラーにあると思います。
show および update アクションで、デモは次の変数を宣言することを示しています。
@user = current_user
それは素晴らしいことですが、私には必要のないヘルパー メソッドです。私は患者を作成し、メインの患者コントローラーの作成アクションで行うセッションに患者 ID を保存する必要があります。次に、何らかの方法でそれを patientsteps コントローラーに渡します。
これが私が患者のステップで試したことです
class PatientstepsController < Wicked::WizardController
before_filter :authenticate_user!
steps :medical, :summary
def show
@patient = Patient.find(params[:patient_id])
render_wizard
end
def update
@patient = Patient.find(params[:id])
@patient.attributes = params[:patient]
render_wizard @patient
end
end
これを行うと、ID がないと患者を見つけることができなくなります。私はこれが間違っていることを理解していますが、患者コントローラーの作成アクションで作成された患者 ID を渡す方法がわかりません。
患者コントローラーの作成:
def create
@patient = Patient.new(params[:patient])
if @patient.save
session[:patient_id] = @patient.id
redirect_to patientsteps_path, notice: "Patient was successfully created."
else
render :new
end
end