我建立了一个多阶段的形式,其中包含三个步骤的邪恶宝石 最后一步应该可以调用1到x次。
所以我在表单中添加了另一个按钮:
if current_step?(:add_principal_claim)
= file.submit value: 'next_claim', class: 'button tiny radius'
= link_to 'finish', Wicked::FINISH_STEP, method: :put, class: 'button tiny radius'
并在我的控制器中添加另一个步骤
steps :add_file_header, :add_claim_header, :add_principal_claim, :next_principal_claim
def show
if step == :add_claim_header
case step
when :next_principal_claim
redirect_to wizard_path(:add_principal_claim)
else
render_wizard
end
end
end
最后需要的步骤是:add_principal_claim。如果需要,应该多次调用它以将多个数据集存储到模型中。
从previuos步骤调用表单导致show action并呈现add_principal_claim视图,单击file.submit按钮将导致控制器中的更新操作,将数据集存储到模型中并按预期重新调用add_principal_claim视图。 / p>
如何让link_to按钮跳转到更新操作,存储数据集然后最终跳出向导?
任何建议都将不胜感激。
答案 0 :(得分:0)
对于那些有同样问题的人:我添加了另一个名为:finish的步骤,在表单中我现在有两个提交按钮,当然有不同的值,这里称为' next_principal_claim'并且'完成'。
def show
if params[:commit] == next_principal_claim
redirect_to wizard_path(:add_principal_claim)
elsif params[:commit] == finish
redirect_to project_path(@project)
else
render_wizard
end
end
这对我来说很好用!