【问题标题】:ruby on rails 4 - Wicked Wizard _Totally_ dynamic step orderruby on rails 4 - Wicked Wizard _Totally_ 动态步骤顺序
【发布时间】:2015-07-02 21:12:18
【问题描述】:

我在上一个问题中几乎找到了我需要的东西:Wicked Wizard dynamic step order

很遗憾,我仍在为自己的问题苦苦挣扎。我想让我的 Wicked Wizard 具有完全动态的步骤顺序(除了第一步)。每个响应都是属于每个 Question 数据库项的数据库项。我想使用选择的 Response 中的 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

【问题讨论】:

    标签: ruby-on-rails wicked-gem


    【解决方案1】:

    当我在 Rails 3.2 中使用before_filter 尝试类似的策略时,它给了我一个错误,建议我改用prepend_before_filter,这很有效。看起来 Rails 4 中存在类似的方法:prepend_before_action,所以它应该适合你。另外,我将元素转换为符号(而不是字符串),因此在您的情况下,它类似于self.steps = Question.pluck(:name).map(&amp;:to_sym)。希望对您有所帮助!

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2011-04-28
      • 2012-04-18
      • 1970-01-01
      • 1970-01-01
      • 2014-11-08
      • 2018-05-25
      • 1970-01-01
      相关资源
      最近更新 更多