前提・実現したいこと
学習を始めて1週間です。
createアクションを使い、保存したいのですがエラーが出てしまいます。
勉強不足で申し訳ないのですが、教えていただきたいです。
発生している問題・エラーメッセージ
NoMethodError in BooksController#create undefined method `book' for #<Book:0x00007fa5e8083460> ``` ### routes ```Rails.application.routes.draw do root to: 'books#top' get 'top' => 'books#top' get 'book/new' get 'index' => 'books#index' post 'books' => 'books#create' get 'books/:id' => 'books#show', as: 'book' get 'book/:id', to: 'books#show' get 'books/:id/edit' => 'books#edit', as: 'edit_book' patch 'books/:id' => 'books#update', as: 'update_book' delete 'books/:id' => 'books#destroy', as: 'destroy_book' end ``` ### bookのコントローラー ```class BooksController < ApplicationController def self.book end def index @books = Book.all end def new @book = Book.new end def create book = Book.new(book_params) book.save redirect_to '/index' end def show @book = Book.find(params[:id]) end def edit @book = Book.find(params[:id]) end def update book = Book.find(params[:id]) book.update(book_params) redirect_to book_path(book.id) end def destroy book = Book.find(params[:id]) book.destroy redirect_to '/index' end private def book_params params.require(:book).permit(:title, :body) end end ``` ###indexファイル ```<h1>Books</h1> <% @books.each do |book| %> <h5>title</h5> <span><%= book.title %></span> <h5>body</h5> <span><%= book.body %></span> <p> <%= link_to "show", book_path(book.id) %> <%= link_to "edit", edit_book_path(book.id) %> <%= link_to "destroy", destroy_book_path(book.id), method: :delete, "data-confirm" => "本当に削除しますか?" %> </p> <% end %> <%= form_with model:Book.new, url:'/books', local:true do |f| %> <h4>title</h4> <%= f.text_field :title %> <h4>Body</h4> <%= f.text_area :body %> <%= f.submit '新規投稿' %> <% end %> ```
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2020/11/13 16:35
2020/11/13 16:36
2020/11/14 01:22
2020/11/14 01:57
2020/11/14 02:07
2020/11/14 02:26
2020/11/14 02:33
2020/11/14 02:41
2020/11/14 02:43 編集
2020/11/14 02:45
2020/11/14 02:50
2020/11/14 02:52