前の質問で必要なものをほぼ見つけました: Wicked Wizard dynamic step order
残念ながら、私はまだ自分の問題に苦しんでいます。Wicked Wizard のステップ順序を完全に動的にしたいと考えています (最初のステップ以外に)。各応答は、各質問データベース アイテムに属するデータベース アイテムです。選択されたレスポンスの next_question 属性を使用して、次に来るステップを決定したいと考えています。
class ExperimentsController < ApplicationController
def create
@experiment = Experiment.new
@experiment.save(validate: false)
redirect_to experiment_steps_path(@experiment, Experiment.steps.first)
end
...
private
def experiment_params
params.require(:experiment).permit(:name, :questions, :responses, :form_step)
end
end
class ExperimentStepsController < ApplicationController
include Wicked::Wizard
before_action :set_steps
before_action :setup_wizard
def show
@experiment = Experiment.find(params[:experiment_id])
@next_question = Response.find(params[:next_question])
jump_to(:next_question)
render_wizard
end
private
def set_steps
self.steps = Question.pluck(:name)
end
def response_params
params.fetch(:response, {}).permit(:next_question)
end
end