📖

collectionでrenderする時にindexを表示したい

2022/04/07に公開

コントローラで取得した記事を、部分テンプレート化した個別記事をcollectionで回して表示する

posts_controller.rb
def index
  @posts = Post.all.limit(6)
end
index.html.erb

<%= render partial: "/posts/_post", collection: @posts, as: "post" %>

個別記事の番号(index)をつけて表示したい

_post.html.erb
<%= post_counter + 1 %>

変数_counterという形でindexを表示できる
今回は1〜スタートしたかったため、post_counter + 1にしている

Railsが、render partial: ..., collection: ...を実行するとindexが作られて表示したpartialの数をカウントしてくれるためこれが実現できる

参考

https://qiita.com/otakumesi/items/74a75cd6ebff7eba5c63

Discussion