前提
カリキュラムの課題でケーキ屋の通販サイトを作成しています。
管理者と顧客で機能を分けており今回は管理者の機能(商品の詳細設定の更新)でエラーが出ています。
実現したいこと
- 商品の詳細を編集したい
※これは確認したいことなのですが、今回のような場合はitemsのupdateアクションでPATCHのルーティングを記述すればいいと考えているのですがこれも間違っているのでしょうか?
まだルーティングの記述方法を理解しきれておらず悩んでいます......
発生している問題・エラーメッセージ
Routing Error No route matches [PATCH] "/admin/items/5/edit"
該当のソースコード
ruby
1Rails.application.routes.draw do 2 # 管理者用 3 devise_for :admin, skip:[:registrations, :passwords] ,controllers: { 4 sessions: "admin/sessions" 5 } 6 7 namespace :admin do 8 resources :items, only: [:index, :new, :create, :show, :edit, :update] 9 resources :genres, only: [:index, :edit, :create, :update] 10 get '/' => 'homes#top' 11 end 12end
ruby
1<h2>商品情報編集</h2> 2<%= form_with model: @item,url: 'admin_items_(items.id)_path)', method: :patch do |f| %> 3 <label for="inputName">商品名</label> 4 <%= f.text_field :name, autofocus: true, id:"inputName", placeholder:"商品名" %><br> 5 6 <label for="inputImage">商品画像</label> 7 <%= f.file_field :item_image, placeholder:"商品画像", accept: "image/*" %><br> 8 9 <label for="inputItem_price">価格(税抜)</label> 10 <%= f.text_field :item_price, autofocus: true, id:"inputItem_price" %><br> 11 12 <label for="inputGenre">ジャンル名</label> 13 <%= f.select :genre_id, @genres.map { 14 |g| [g.name, g.id]},class: "form-control" %><br> 15 16 <%= f.submit "変更を保存" %> 17<% end %>
試したこと
$rails routes | grep adminを実行し、ルーティングの確認をしました。
が、うまくいきませんでした...
new_admin_session GET /admin/sign_in(.:format) admin/sessions#new admin_session POST /admin/sign_in(.:format) admin/sessions#create destroy_admin_session DELETE /admin/sign_out(.:format) admin/sessions#destroy admin_items GET /admin/items(.:format) admin/items#index POST /admin/items(.:format) admin/items#create new_admin_item GET /admin/items/new(.:format) admin/items#new edit_admin_item GET /admin/items/:id/edit(.:format) admin/items#edit admin_item GET /admin/items/:id(.:format) admin/items#show PATCH /admin/items/:id(.:format) admin/items#update PUT /admin/items/:id(.:format) admin/items#update
補足情報(FW/ツールのバージョンなど)
rails 6.1.7
ruby 3.1.2
回答1件
あなたの回答
tips
プレビュー