postした内容が一覧で表示できなかった時のエラー解決
Ruby on railsで投稿アプリを作りたい。
その際に、userとpostモデルのある状態をまず作ろうと思ったのですが、一ついくらメンターに相談しても時間がかかったエラーがありました。
ActionView::Template::Error (undefined method `each' for nil:NilClass)
postコントローラでindexアクションに
def index
@posts = Post.all.order(id: :asc)
end
投稿したpostの内容を一覧表示にするところで、
index.html.erbに渡します
<% @posts.each do |post| %>
<%= post.title %>
<%= post.content %>
<% end %>
これで表示できるはずが、
ActionView::Template::Error (undefined method `each' for nil:NilClass)
エラーでググっても、出てくるものは@postsがnilになってるので、、とか
同じ様なエラーでも@postsが@post になってたり、全角スペースが入っていたり、、
ルーティングもOK
DBに保存もできている
showページは表示できるので、投稿自体は渡っている。
なぜ?
原因
postコントローラーのメソッドの書き順が原因でした。
index
new
create
show
edit
update
destoy
と書くのが普通なところを
new
create
index←ここ
略
とindexメソッドをnewとcreateの後に書いていたのが原因だった様です。
1日悩んで、メンターさんに相談してもなかなか進まなかったよ〜言うなれば根本的な部分だったのかも。
でも、いろんな原因を探るうちに理解できた部分も多かったのでエラーは成長には欠かせないのかもしれません。
Author And Source
この問題について(postした内容が一覧で表示できなかった時のエラー解決), 我々は、より多くの情報をここで見つけました https://qiita.com/acro_y/items/e11f194b4c7af66df1dd著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .