【问题标题】:Calling a wicked wizard step multiple times多次调用邪恶的向导步骤
【发布时间】:2015-03-04 19:16:00
【问题描述】:

我用 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 按钮跳转到更新操作、存储数据集然后最终跳出向导?

任何建议将不胜感激。

【问题讨论】:

    标签: ruby-on-rails-4 wicked-gem


    【解决方案1】:

    对于那些有同样问题的人:我添加了另一个名为 :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
    

    这对我来说很好!

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-06-11
      • 1970-01-01
      • 2023-03-18
      • 2017-01-15
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多