多次调用邪恶的向导步骤
Calling a wicked wizard step multiple times
我用 wicked-gem 构建了一个包含三个步骤的多步骤表单。
最后一步应该可以调用 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。如有必要,应多次调用它以将多个数据集存储到模型中。
从上一步调用表单会导致显示操作并呈现 add_principal_claim 视图,单击 file.submit 按钮会导致控制器中的更新操作,将数据集存储到模型中,然后按预期回忆 add_principal_claim 视图。
如何让 link_to 按钮跳转到更新操作,存储数据集,然后最终跳出向导?
如有任何建议,我们将不胜感激。
对于那些有同样问题的人:我添加了另一个步骤 :finish 并且在表单中我现在有两个当然具有不同值的提交按钮,这里称为 'next_principal_claim' 和 'finish'。
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
这对我来说很好!
我用 wicked-gem 构建了一个包含三个步骤的多步骤表单。
最后一步应该可以调用 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。如有必要,应多次调用它以将多个数据集存储到模型中。
从上一步调用表单会导致显示操作并呈现 add_principal_claim 视图,单击 file.submit 按钮会导致控制器中的更新操作,将数据集存储到模型中,然后按预期回忆 add_principal_claim 视图。
如何让 link_to 按钮跳转到更新操作,存储数据集,然后最终跳出向导?
如有任何建议,我们将不胜感激。
对于那些有同样问题的人:我添加了另一个步骤 :finish 并且在表单中我现在有两个当然具有不同值的提交按钮,这里称为 'next_principal_claim' 和 'finish'。
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
这对我来说很好!