質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
Ruby on Rails 5

Ruby on Rails 5は、オープンソースのWebアプリケーションフレームワークです。「同じことを繰り返さない」というRailsの基本理念のもと、他のフレームワークより少ないコードで簡単に開発できるよう設計されています。

Q&A

解決済

1回答

987閲覧

Ruby on rails NameError in Posts#index

退会済みユーザー

退会済みユーザー

総合スコア0

Ruby on Rails 5

Ruby on Rails 5は、オープンソースのWebアプリケーションフレームワークです。「同じことを繰り返さない」というRailsの基本理念のもと、他のフレームワークより少ないコードで簡単に開発できるよう設計されています。

0グッド

0クリップ

投稿2019/05/18 07:08

前提・実現したいこと

超初心者です。
しょうもない質問だったらすみません。
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 #<#Class:0x0000000483b810:0x0000000467e720>
Did you mean? posts
post_url
posts_url
post_path
@posts
Extracted source (around line #5):

<% @posts.each do |posts| %> <li> <%= link_to post.title, post_path(post) %> </li> <% end %>
</ul>

Rails.root: /home/ubuntu/workspace

該当のソースコード

<%= link_to post.title, post_path(post) %>

試したこと

post_pathか(post)の部分が違うのかとpost_urlにしてみたりドットインストールの動画より
(post.id)にしてみたりしましたが変わりありません。
link_toヘルパーを使う前にpost.titleで表示出来ていたのでそこは間違っていないと思うのですが…

補足情報(FW/ツールのバージョンなど)

ここにより詳細な情報を記載してください。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

この部分 |posts||post|にすると動くと思います!

ruby

1<% @posts.each do |posts| %>

現在のコードでは、@posts 配列から1つ1つ取り出している要素は posts という変数名になります。
ただ、「該当のソースコード」では、post を参照しようとしてます。
が、post という変数名は定義されていないので、エラーになっているといったことかぁと思います。

投稿2019/05/18 07:34

hatsu

総合スコア1809

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

退会済みユーザー

退会済みユーザー

2019/05/18 07:47

ありがとうございます!!!!! 解決されました!!! 「該当のソースコード」の部分ばかり見ていてそちらのミスに気が付きませんでした。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問