在铁路应用中,我使用邪恶的宝石来创建向导(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
在这里重定向不是一个好主意,因为更新操作已经使重定向
hmm,您是否试图为每个向导步骤添加验证?如果是这样,您可以执行以下操作:
在您的模型中
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
列添加到您的模型。
在每个步骤上,添加了form_progress
的hidden_field
,并将值设置为该步骤的数量。
f.hidden_field :form_progress, value: 1
因此,这样,用户只能在通过验证验证的情况下前进到下一步。