前提・実現したいこと
railsで観葉植物を投稿する、SNSのようなウェブアプリケーションを作っています。
登録した画像を表示させる機能を実装中に以下のエラーメッセージが発生しました。
発生している問題・エラーメッセージ
NameError in Posts#index undefined local variable or method `post' for #<#<Class:0x00007ffca583d728>:0x00007ffca5847db8> Did you mean? @posts
該当のソースコード
ruby
1class PostsController < ApplicationController 2 3 def index 4 @posts = Post.all 5 end 6 7 def new 8 @post = Post.new 9 end 10 11 def create 12 @post = Post.new(post_params) 13 if @post.save 14 redirect_to root_path 15 else 16 render :new 17 end 18 end 19 20 21 private 22 23 def post_params 24 params.require(:post).permit(:title, :catch_copy, :concept, :image).merge(user_id: current_user.id) 25 end 26 27end
該当のソースコード
試したこと
indexアクションに、インスタンス変数@postsを定義し、すべての情報を代入しました。
1、railsは名前規則が厳しいとのことなので、名前の確認をしました。おかしな箇所はありませんでした。
2、index.html.erbの13行目のcollection:@postにするとエラー解消されましたが、画像を表示させることができません。
3、2の@postにすると、データベースに保存されます。
4、Did you mean? @postsをエラー文の赤ハイライトの箇所に@posts.imageをいれてもエラー解消できませんでした。
collection:@postsですべての情報を集めてきて、部分テンプレート内では、@の必要のない、post.imageでコードを書いています。
補足情報(FW/ツールのバージョンなど)
データベースは、sequelproを使用しています。
初学者です。2ヶ月勉強して、少しずつ慣れてきたところでしたが、、
今回解決できないエラーに直面してしまい、1日悩んでいました。
アドバイス宜しくお願いします。
あなたの回答
tips
プレビュー