dbに記述したデモデータを取得&反映するためにNoMethodErrorを解決したいです!
dbのソースコードを記述し、ターミナルにて該当ディレクトリ(blog-app-hirochan)で
$rails db:seed
を実行済みです。
▼起きている問題(起きている現象の詳細/エラーメッセージ/スクリーンショット)
スクショを貼っています。
▼ソースコード、ログ
https://github.com/hirooutdoor/blog-app-hirochan/tree/show-articles
▼問題解決するために試したこと
'each' for nil:Nilclassとなっていたので、@articlesがちゃんと定義できていないと疑いました。
▼以下試したこと、問題について考えたこと(デバッグ結果)
①該当箇所のあるapp/views/index.html.erbの記述が間違いなさそうなことを確認
<div class="container"> <div class="tabs"> <div class="tabs_item active"> 新着記事一覧 </div> <div class="tabs_item"> タイムライン </div> </div> <% @articles.each do |article| %> <div class="card"> <div class="card_image"> <%= image_tag 'eyecatch1.png' %> </div> <div class="card_content"> <div class="card_title"> <%= article.title %> </div> <div class="card_heart"> <%= image_tag 'heart.svg' %> <span>23</span> </div> <div class="card_detail"> <%= image_tag 'default-avatar.png' %> <div> <p>cohki0305</p> <p>2020/4/16</p> </div> </div> </div> </div> <% end %> </div>
②app/controllers/articles_controller.rbで定義できていることを確認
class ArticlesController < ApplicationController def index @articles = Article.all end end
③app/db/seeds.rbでデモ通りに記述できているのを確認
Article.create({title: 'ビジョニングの力1', content: '成功者のほぼ全ての人は、ビジョニングを行っている。脳は実際に起きたことと、想像したことを見分けることができない。この力を使ってとにかく自分が成功するイメージを掴むんだ。'}) Article.create({title: 'ビジョニングの力2', content: '偉人の写真を壁一面に貼ることだ。自分がその人物に近づいているかどうか、日々確認できる。'})
④app/model/article.rbのファイルに間違いがないのを確認
class Article < ApplicationRecord end
'each' for nil:Nilclassとなっていたので、@articlesがちゃんと定義できていないと疑いましたが、定義できているようで何が問題なのかさっぱりです。ご教授いただけると幸いです><!!
-追記-
rails consoleを使ってseedのデータがmodelで生成できていることを確認しました。
利用環境
Rails 6.0.3.4
VScode 1.49.2
回答1件
あなたの回答
tips
プレビュー