#前提・実現したいこと
ProgateでRailsの学習をしております。postsデータベースからデータを取り出して表示するために、コントローラーの中で@postにデータを代入しました。htmlの方でそれを取り出そうと思い、下記のようなコードを書いてみましたが、エラーになりました。
試しに、@postの部分をPost.all[0]で書くと正常に動作しました。
#発生している問題
下記のようなメッセージがブラウザに表示されました。
NoMethodError in Posts#show
Showing /home/progate/tweet_app/app/views/posts/show.html.erb where line #5 raised:
undefined method `[]' for nil:NilClass
Extracted source (around line #5):
<div class="posts-show-item"> <p> <%=@post[0].content%> </p> <div class="post-time">
Rails.root: /home/progate/tweet_app
@postとPost.allが同じなら、@postでも同様の結果が出るはずだと考えたのですが、何が違うのでしょうか?
#該当のソースコード
rb
1 def index 2 @post = Post.all 3 end
html
1<%=@post[0].content%>
回答2件
あなたの回答
tips
プレビュー