やりたいこと
確認画面(cofirmアクション)へ送信するためには、オプションを与えて、送り先を変える必要があります。
ですので、単純にform_forを編集し、url: confirm_blogs_pathurl
オプションを与え下のような形にしても良いが
<%= form_for(@blog, url: confirm_blogs_path) do |f| %>
これでは、editアクションを実行した時にエラーになります。このエラーを避けるためにHelperメソッドを作成し、newアクションの時は、url: confirm_blogs_path
オプションに、updateアクションのときはblogs_path
オプションが生成されるようにする。
module BlogsHelper
def choose_new_or_edit
if action_name == 'new' || action_name == 'confirm'
confirm_blogs_path
elsif action_name == 'edit'
blog_path
end
end
end
app/views/blogs/_form.html.erb
<%= form_for(@blog, url: choose_new_or_edit) do |f| %>
以上。