Masahiro Okubo

wickedで同じページへredirectさせる方法

wickedで同じページへredirectさせる方法
@next_step = step

update メソッドに入れることで実現可能です

wickedのrender_wizard のソースを読むと下記のコードで実装されています
下の方に@skip_to@next_stepを入れているので、controller側で再代入してあげることで同じページへリダイレクトが可能となります。

def render_wizard(resource = nil, options = {}, params = {})
    process_resource!(resource, options)

    if @skip_to
      url_params = (@wicked_redirect_params || {}).merge(params)
      redirect_to wizard_path(@skip_to, url_params), options
    else
      render_step(wizard_value(step), options, params)
    end
  end

  def process_resource!(resource, options = {})
    return unless resource

    if options[:context]
      did_save = resource.save(context: options[:context])
    else
      did_save = resource.save
    end

    if did_save
      @skip_to ||= @next_step
    else
      @skip_to = nil
    end
  end

参考記事

なし、コード見たら書いてあった


関連記事

copyright© 2016-2021 Masahiro Okubo