いわりょのBlog

IT関連で学んだことを書いていきます。

renderメソッドの使い方(インスタンス変数を渡す場合)

基本形

<%= render partial: 'articles/article', locals: { article: @article } %>

_article.html.erbの部分テンプレートにarticleと言う名前で@articleのインスタンスを使用します。

省略形

<%= render 'articles/article', article: @article %>

さらに省略形

<%= render @article %>

繰り返し処理に利用してみる

インスタンスが複数ある場合

articles_controller.rb

def index
   @articles = Article.all
end

パーシャルの例

_article.html.erb

<article>
    <header class="post-info">
        <h2 class="post-title"><%= article.title %></h2>
        <p class="post-date"><%= article.date %></p>
    </header>
    <div class="post-content"><%= article.content %></div>
</article>

繰り返しで個別のインスタンスごとのパーシャルを呼び出す

index.html.erb

<% @articles.each do |article| %>

 <%= render partial: "article", article: article  %>

<% end %>

しかしこっちの方がパフォーマンスがいいそうです。

index.html.erb

<%= render @articles %>