Ruby on Railsのform_withビューヘルパーでurl:にidを含むaction="***"の組み立て方を知りたい
Ruby on Rails5に初めて手を付けました。
formタグを生成するビューヘルパーにはform_with. form_for, form_tagという3つがあることがわかりました。
Rails5の推奨であるform_withビューヘルパーのurl: の使い方を知りたいです。
やりたいこと
from_withビューヘルパーで下記のHTMLコードを書きたい
<form action="blogposts/1" accept-charset="UTF-8" method="post">
やってみたこと
<%= form_with model: @blogpost, url: 'blogposts/edit', local: true do |form| %>
これだと下記のようなHTMLコードになる。
<form action="blogposts/edit" accept-charset="UTF-8" method="post">
下記のコードを試してみたところ、IDも表示されたが、form_forビューヘルパーのようで間違っていると思う。
<%= form_with model: @blogpost, url: {controller: 'blogposts', action: 'edit', id: @blogpost.id}, local: true do |form| %>
RUBYAPP/config/routes.rbファイルの一部
Rails.application.routes.draw do
## blogposts ##
get 'blogposts/index'
get 'blogposts', to: 'blogposts#index'
get 'blogposts/delete/:id', to: 'blogposts#delete'
post 'blogposts/delete', to: 'blogposts#delete'
post 'blogposts/delete/:id', to: 'blogposts#delete'
get 'blogposts/add'
post 'blogposts/add'
get 'blogposts/:id', to: 'blogposts#edit'
patch 'blogposts/:id', to: 'blogposts#edit'
get 'blogposts/delete'
動作環境
Rails version: 5.2.2
Ruby version: 2.4.1 (x86_64-linux)
教えていただけると嬉しいです。
よろしくお願いします。
間違ったurl:を指定すると下記のエラー画面「Routing Error」が表示されます。
Helperには/blogposts/:id(.:format)のPath/Urlがないのですが、blogposts#editはどこかで指定できるものなのでしょうか。