Ruby on Rails でeach文を使おうとすると、エラーが発生しました。
Rails でeach文を使おうとしたら、NoMethodErrorが発生しました。
データベースのPostsテーブルからcontentというカラムのデータを取り出し表示するつもりです。
他の質問を見て自分なりに解決策を探しましたが、解決には至りませんでした、、、
このエラーの解決策をご教授ください。
発生している問題・エラーメッセージ
NoMethodError in Posts#index undefined method `each' for nil:NilClass --- Extracted source (around line #3): <h1>Postのindex</h1> <p>ここはインデックス</p> <% @post.each do |post| %> **ここが赤く表示** <%= post.content %> <% end %>
該当のソースコード
ruby
1###view 2<h1>Postのindex</h1> 3<p>ここはインデックス</p> 4<% @post.each do |post| %> 5 <%= post.content %> 6<% end %> 7 8###controller 9class PostsController < ApplicationController 10 def index 11 @post = Post.all 12 end 13 14###routes 15Rails.application.routes.draw do 16 get 'posts/index', to:'posts#index' 17end 18
試したこと
each文の文法が正しいことは確認しました。
コンソールより、Postsテーブルのcontentカラムにテキストが保存されていることは確認しました。localhost:3000/posts/indexを開こうとするとこのエラーが出ます。
他の質問から、
<% @post.each do |post| %>の@postがnilである、というところまでは他の質問で
理解出来ましたが、コントローラーには
class PostsController < ApplicationController
def index
@post = Post.all
end
と記述しており、@postを定義出来ていると思うのですが、、、
補足情報(
rails -v 6.0.0
回答1件
あなたの回答
tips
プレビュー