前提・実現したいこと
Rails5.2 を用いた画像投稿サービスを作成しています。(Instagramのようなものです)
ユーザーが画像を投稿し、投稿した画像の詳細画面に飛ぼうとすると、以下のエラーメッセージが発生しました。
発生している問題・エラーメッセージ
undefined method `photos' for nil:NilClass
<%= image_tag @post.photos.first.image.url(:medium), class: "card-img-top" %>という
コードがnilクラスになってしまっているようです。
該当のソースコード
★エラー文
Extracted source (around line #6):
def new
@post = Post.new
@post.photos.build
end
def create
@post = Post.new(post_params)
if @post.photos.present?
@post.save
redirect_to "/posts/:id"
flash[:notice] = "投稿が保存されました"
else
redirect_to root_path
flash[:alert] = "投稿に失敗しました"
end
end
def index
@posts = Post.all.includes(:photos, :user).order('created_at DESC')
end
def show
@post = Post.find_by(id: params[:id])
end
def destroy
if @post.user == current_user
flash[:notice] = "投稿が削除されました" if @post.destroy
else
flash[:alert] = "投稿の削除に失敗しました"
end
redirect_to root_path
end
private
def post_params
params.require(:post).permit(:caption, photos_attributes: [:image]).merge(user_id: current_user.id)
end
def set_post @post =Post.find_by(id: params[:id]) end
end
試したこと
rails consoleを用いて、【Post】と【Photo】の中身を調べましたが、
レコードは存在していました。
補足情報(FW/ツールのバージョンなど)
開発環境:cloud9
MacBook air
Rails 5.2.4.1
ruby 2.6.3p62
おいそがしいところ大変恐れ入りますが、
何卒宜しくお願い致します。
回答1件
あなたの回答
tips
プレビュー