在rails应用程序中,我使用wicked gem创建向导(https://github.com/schneems/wicked/)
我希望保护我的向导并在检查后仅渲染具体步骤。
实际上render_wizard方法只能接受实例:
render_wizard @product
是否有可能以某种方式渲染show动作中允许的步骤? 我需要这样的东西:
if params[:id] == @my_request_model.current_state
render_wizard
else
render_wizard @my_request_model.current_state
重定向此处不是一个好主意,因为更新操作已经重定向
答案 0 :(得分: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_field
添加form_progress
,并将值设置为该步骤的编号。
f.hidden_field :form_progress, value: 1
因此,如果他们通过验证,用户只能前进到下一步。