Programming Journal

学習したことの整理用です。

パーシャルを使って掲示板一覧を表示する

掲示板一覧のページを作成する。

こんな完成図のイメージ(名前はFakerを使ったダミー)

f:id:Study-Diary:20200805160947p:plain
掲示板一覧

パーシャルを作成する。

個々の掲示板パーツを使っていく

重要なとこだけ抜粋

<%= board.title %>
<%= board.user.decorate.full_name %>
<%= l board.created_at, format: :long %>
<%= board.body %>

index.html.erbからさっきのパーシャルを読み込む

<!-- 掲示板一覧 -->
  <div class="row">
    <div class="col-12">
      <div class="row">
        <% if @boards.present? %> #@boardsがあったら
          <%= render @boards %>
        <% else %>
          <p><%= t('.no_result') %></p>
        <% end %>
      </div>
    </div>
  </div>

ポイントは、

<%= render @boards %>

each文でなく、こちらを使う。 railsでは、モデルのインスタンスの集合(ここでは@boards)をレンダーすると、以下の処理をデフォルトの挙動でやってくれる

<% @boards.each do |board| %>
  <%= render board %>
<% end %>