【发布时间】:2014-03-02 19:03:45
【问题描述】:
我正在尝试构建一个向导风格的网站来帮助创建一个对象。
每一步用户输入一些参数。只有在最后一步提交所有参数时,我才想在 DB 中创建和持久化对象。
class ExperimentsController < ApplicationController
def wizard_step_1
render template: "experiments/wizards/step1"
end
def wizard_step_2
render template: "experiments/wizards/step2"
end
def wizard_step_3
binding.pry
# how to access params in step 1 & 2 here?
end
end
View step1 below:
<%= form_tag(action: 'wizard_step_2') do %>
<%= text_field_tag("user_name") %>
<%= submit_tag("Next >>") %>
<% end %>
View step2 below:
<%= form_tag(action: 'wizard_step_3') do %>
<%= text_field_tag("user_email") %>
<%= submit_tag("Next >>") %>
<% end %>
我没有把路线信息放在这里,因为它已经过测试了。当用户访问step1并输入用户名时,提交表单控件时转到wizard_step_2并显示视图step2。在这里,用户输入电子邮件,当单击提交按钮时,执行转到操作 wizard_step_3。 那么我的问题是如何获取用户名和用户在前面步骤中输入的电子邮件?
我曾考虑过 gem Wicked 和 Rails 缓存等,但它们或多或少无法满足我的需求。有没有一种体面的方法来做到这一点?
【问题讨论】:
标签: ruby-on-rails view controller wizard