NoMethodError in Posts#edit Showing /Users/hoge/hoge/app/views/posts/edit.html.erb where line #8 raised: undefined method `content' for nil:NilClass <%= @post.title %> ←ここと <br> <textarea><%= @post.content %></textarea> ←ここが原因だと言われる </div> </div> </div>
これのエラーの対処法がわかりません。
class PostsController < ApplicationController def index @posts = Post.all.order(created_at: :desc) end def show @post = Post.find_by(id: params[:id]) end def new end def create @post = Post.new(content: params[:content], title: params[:title]) @post.save redirect_to("/posts/index") end def edit @post = Post.find_by(id: params[:id]) end end
PostsController ではインスタンス変数の宣言はしています。そしてshowメソッドでは 以下の通りのコードですが問題なく
@post.content @post.title共に表示できます。
<div class="main posts-show"> <div class="container"> <div class="posts-show-item"> <div class="post-item"> <%= @post.title %> <br> <%= @post.content %> </div> <div class="post-time"> <%= @post.created_at %> </div> </div> <div class="post-menus"> <%= link_to("編集する", "/posts/#{@post.id}/edit") %> </div> </div> </div>
ですがなぜか edit メソッドでは最初のエラーにあるように
undefined method `content' for nil:NilClass undefined method `title' for nil:NilClass
contentがundefinedと言われてエラーになります。 edit メソッドのコードは以下になります。
<div class="main posts-new"> <div class="container"> <h1 class="form-heading">編集する</h1> <div class="posts-show-item"> <div class="post-item"> <%= @post.title %> <br> <textarea><%= @post.content %></textarea> </div> </div> </div> </div>
どうかお力を貸してください!
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2020/07/04 10:51
2020/07/04 10:52
2020/07/04 12:29
2020/07/04 13:13
2020/07/04 13:21
2020/07/04 13:27
2020/07/04 23:40
2020/07/04 23:54
2020/07/05 01:38
2020/07/05 03:47
2020/07/05 04:25