Railsでindexページの中に、新規投稿機能と投稿一覧機能をつけたいのですが、エラーが。。
仕上がりはこんな感じで、index.html.erbに追記したいのですが、
今、新規投稿機能を書いて、それの一覧機能のコードも書いたのですが、
Previewで確認したところ、下記のエラーが出ました。どうしたらいいですか?
あと、投稿後は、SHOWに移動したいのですができればそれもお願いします。
エラーコード ActionController::ParameterMissing in BooksController#index param is missing or the value is empty: @book Extracted source (around line #23): private def book_params 23→ params.require(:@book).permit(:title, :body) end end
該当のソースコード
index.html.erb <h1>Books</h1> <table> <thead> <tr> <th>Title</th> <th>Body</th> <th colspan="3"></th> </tr> </thead> </table> <h2>New book</h2> <%= from_with model:@book, local:true do |f| %> <h4>Title</h4> <%= f.text_field :title %> <h4>Body</h4> <%= f.text_area :body %> <%= f.submit 'Create Book' %> <% end %>
routes.rb
1 2Rails.application.routes.draw do 3 get "/" => "homes#top" 4 resources :books 5end 6
books_controller.rb class BooksController < ApplicationController def index @book = Book.new(book_params) @books = all end def create book = book.new(book_params) book.save redirect_to '/books/show' end def show end def edit end private def book_params params.require(:@book).permit(:title, :body) end end
試したこと
ググっても分からなかったのでコチラに書かせてもらいました。
すいません、初めての投稿で色々と不快にされた方、申し訳ございません。
大至急とか質問内容と関係ない文言はやめましょう。
回答者はボランティアなので大至急とか書かれるとやる気がなくなります。
早く回答してもらいたいのは分かりますが、避けたほうがいいでしょう。
タイトルに中身が何もないので投稿内容も読もうと思いませんでした。
https://teratail.com/help/question-tips#questionTips3-1
すいません、はじめての投稿で何もルールを分かってませんでした。