LoginSignup
0
0

More than 5 years have passed since last update.

Rails5 renderのpartialファイルにデータを渡す

Last updated at Posted at 2019-04-21

共通で使うrenderファイルにデータを渡す方法

  • partialファイル(_xxx.html.erb)を呼ぶ出すときはrenderメソッドを使う。

= render 'xxx' もしくは = render partial: 'xxx'

  • データを渡したいときはlocalsオプションを利用する。

= render partial: 'xxx', locals: { key: data}
localsオプションにはオブジェクトを渡します。
オブジェクトのkeyがパーシャル内で参照できる値になります。

また、localsオプションだけを指定する場合は省略形で記述することも可能です。
= render 'xxx', key: data

index.html.erb
<div class="contents row">
    <% @tweets.each do |tweet| %> 
      <%= render partial: "tweet", locals: { tweet: tweet } %> 
    <% end %>
    <%= paginate(@tweets) %>
</div>

_tweet.html.erbというpartialファイルがあるとします。

partialファイルtweetをrenderメソッドで呼び出す。
localsオプションではkeyがtweetで値がeach文の|tweet|である。
= render 'tweet', tweet: tweetとしても呼び出す事ができる。

_tweet.html.erbファイルではtweetをキーとして@tweetsの変数であるtweetを使用できる。

  <%= simple_format(tweet.text) %>
  <span class="name">
    <a href="/users/<%= tweet.user_id %>">
      <span>投稿者</span><%= tweet.user.nickname %>
    </a>
  </span>
0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0