簡易的な本の感想を投稿するブログを作っています。
バリデーションが実装ができずに困っております。
書いたコードは下記の通りです。
[book_controller.rb]
class BooksController < ApplicationController
def index
@book = Book.new
@books = Book.all
end
def show
@book = Book.find(params[:id])
end
def new
end
def edit
@book = Book.find(params[:id])
end
def create
book = Book.new(book_params)
if book.save
redirect_to book_path(book.id)
flash[:notice] = 'Book was successfully created.'
else render 'index' end
end
def update
book = Book.find(params[:id])
book.update(book_params)
flash[:update] = 'Book was successfully updated.'
redirect_to book_path(book.id)
end
def destroy
@book = Book.find(params[:id])
@book.destroy
flash[:destroy] = 'Book was successfully destroyed.'
redirect_to books_path
end
private
def book_params
params.require(:book).permit(:title, :body)
end
end
[book.rb]
class Book < ApplicationRecord
end
class Book < ApplicationRecord
validates :title, :body, presence: true
end
[index.html.erb]
<% if flash[:destroy] %>
<% end %>
投稿一覧ページ下部に投稿機能を実装しており、タイトルかボディが空欄だった場合にエラーメッセージが出るよう実装したいのですが、
下記のエラーが出てしまいます。
undefined method `each' for nil:NilClass
Extracted source (around line #15):
13
14
15
16
17
18
こちら以外は正常に作動しています。
よろしくお願い致します。