Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ruby-on-rails/66.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails 将数据传递到向导中的下一步_Ruby On Rails_Wizard - Fatal编程技术网

Ruby on rails 将数据传递到向导中的下一步

Ruby on rails 将数据传递到向导中的下一步,ruby-on-rails,wizard,Ruby On Rails,Wizard,我刚刚在上观看了用于创建多步骤向导的 我想知道这个gem是否可以用来创建一个向导,其中数据在render\u向导调用中以某种方式向前传递?根据我最初的修补,我认为这是不可能的。我希望解决的问题是创建一个向导,其中第一步选择一个国家,第二步允许从该国选择人员 有没有更简单的方法来解决这个问题?谢谢你的帮助 您可以使用无表ruby对象。在每个显示步骤之前将其序列化到会话,并在每个更新步骤之前从会话(合并到任何新参数)加载它 before_filter :initialize_wizard, on:

我刚刚在上观看了用于创建多步骤向导的

我想知道这个gem是否可以用来创建一个向导,其中数据在
render\u向导
调用中以某种方式向前传递?根据我最初的修补,我认为这是不可能的。我希望解决的问题是创建一个向导,其中第一步选择一个国家,第二步允许从该国选择人员


有没有更简单的方法来解决这个问题?谢谢你的帮助

您可以使用无表ruby对象。在每个显示步骤之前将其序列化到会话,并在每个更新步骤之前从会话(合并到任何新参数)加载它

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
然后,您可以使用一个条件前置过滤器,该过滤器根据国家/地区id组合人员选择,如下所示:

before_filter :populate_people, if: "step == 'select_people'"

...

def populate_people
  People.find_by_country_id(@wizard.country_id)
end

检查此线程:数据是否需要通过
render\u向导
调用传递?wiki现在包含收集会话中所有模型参数的示例: