0

在 Rails 应用程序中,我使用 wicked gem 创建向导(https://github.com/schneems/wicked/

我想保护我的向导并在检查后只呈现具体步骤。

实际上 render_wizard 方法只能接受实例:

render_wizard @product

是否有可能以某种方式呈现表演动作中仅允许的步骤?我需要类似的东西:

if params[:id] == @my_request_model.current_state
  render_wizard
else
  render_wizard @my_request_model.current_state

在这里重定向不是一个好主意,因为更新操作已经进行了重定向

4

1 回答 1

0

嗯,您是否尝试为每个向导步骤向表单添加验证?如果是这样,您可以执行以下操作:

在你的模型中

validate :foo if step_1
validate :bar if step_2

def step_1
  form_progress == 1
end

def step_2
  form_progress == 2
end

添加迁移以将form_progress列添加到您的模型。

在每个步骤表单上添加一个hidden_fieldforform_progress并将值设置为该步骤的编号。

f.hidden_field :form_progress, value: 1

所以这样,用户只有通过验证才能进入下一步。

于 2014-02-06T17:22:24.440 回答