@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
参考記事
なし、コード見たら書いてあった
コメントを残す