編集ページでデータを更新した後に詳細ページにリダイレクトさせたいのですが、" No route matches [PATCH] "/books/1/books/1" "とエラーが出ます。/books/1をPATCHさせたいのですがうまくいきません。
ルーティングは見直しましたが、別段変なところはないように思いました。
どのような流れでこのような表示が出てしまうのか教えていただきたいです。
よろしくお願いします。
route Rails.application.routes.draw do root to:"top#index" post "/books"=>"books#create" get "/books"=>"books#index" get "/books/:id"=>"books#show", as: 'show' get "/books/:id/edit"=>"books#edit", as: 'edit' patch "/books/:id"=>"books#update" end
controller class BooksController < ApplicationController def index @books = Book.all @books = Book.order("id") @book=Book.new end def show @book = Book.find(params[:id]) end def create book=Book.new(book_params) book.save redirect_to "/books" end def edit @book = Book.find(params[:id]) end def update book = Book.find(params[:id]) book.update(book_params) redirect_to show_path(book) end private # ストロングパラメータ def book_params params.require(:book).permit(:title, :body) end end
view <h1>Editing Book</h1> <%= form_with model:@book,url:"books/#{@book.id}",local:true do |f| %> <h4>title</h4> <%= f.text_field:title %> <h4>body</h4> <%= f.text_area:body %> <p><%= f.submit 'Update Book' %></p> <% end %> <br><%= link_to "Show",show_path(@book) %>|<%= link_to "Back","/books" %></br>
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。