何が原因なのか、教えて頂きたいです。
やりたいことしては、投稿された記事を投稿された日付が最新順(最新記事は一番上に)に表示したいというものです。
コントローラー
index.html.erbで日付が最新順に表示させるための処理をしてます。
def index @posts = Post.all.order(created_at: :desc) end def new @post = Post.new end
new.html.erb
<% @posts.each do |post| %> <tr> <td><%= link_to(post.name, "/posts/#{post.id}") %></td> </tr> <% end %>
index.html.erb
<table>@posts.each do |post| %> <tr> <td><%= link_to(post.name, "/posts/#{post.id}") %></td> </tr> </table>
エラーはなく、表示自体はされるのですが、どうも最新に投稿した記事が一番↓にいきます。
恐れ入りますがご助言お願いいたします。
rails console で、
Post.all.order(created_at: :desc)
Post.all
Post.all.reverse_order
をそれぞれ実行してみてその結果を確認した上で共有してみてください。
参考サイト: https://qiita.com/lasershow/items/5bcefcbd6ae86a5ff202
それとは関係ないのですが、 index.html.erb が syntax error を起こしそうなコードになっているので、実際のソースコードを記載しておいていただけるとありがたいです(そこに原因があるのではないかと感じてしまいます)
また、new.html.erb は本当にそのコードなのでしょうか?
@postsがcontrollerのnewアクションでは作成されていなさそうなため、実際はviewかcontrollerが違うかと思いますので、そちらも修正していただくと、安心して回答しやすい質問になると思います。
間違いがあればあるほど、他の部分も書き間違いなのではないか?と疑わなければならなくなります。
極力ミスのない記載をしておいた方が回答者が付きやすくなると思います。
あなたの回答
tips
プレビュー