質問: ### 前提・実現したいこと 超初心者です。 しょうもない質問だったらすみません。 Cloud9を使用してドットインストールのRuby on rails5入門のレッスンをしています。 同じような質問を探していましたがNameError in Posts#index のエラーがどうしても 解決できません。 ### 発生している問題・エラーメッセージ Showing /home/ubuntu/workspace/app/views/posts/index.html.erb where line #5 raised: undefined local variable or method `post' for #<#:0x0000000467e720> Did you mean? posts post_url posts_url post_path @posts Extracted source (around line #5): <% @posts.each do |posts| %> <%= link_to post.title, post_path(post) %> <% end %> Rails.root: /home/ubuntu/workspace ### 該当のソースコード <%= link_to post.title, post_path(post) %> ### 試したこと post_pathか(post)の部分が違うのかとpost_urlにしてみたりドットインストールの動画より (post.id)にしてみたりしましたが変わりありません。 link_toヘルパーを使う前にpost.titleで表示出来ていたのでそこは間違っていないと思うのですが... ### 補足情報(FW/ツールのバージョンなど) ここにより詳細な情報を記載してください。
回答: この部分 `|posts|` を`|post|`にすると動くと思います! ``` <% @posts.each do |posts| %> ``` 現在のコードでは、`@posts` 配列から1つ1つ取り出している要素は `posts` という変数名になります。 ただ、「該当のソースコード」では、`post` を参照しようとしてます。 が、`post` という変数名は定義されていないので、エラーになっているといったことかぁと思います。