0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

ruby on rails: view上のforeachの中で、複数回yieldに値を渡したいとき

Posted at

#ruby on rails: view上のforeachの中で、複数回yieldに値を渡したいとき
railsの中でviewの数が増えてきてレンダリングしていると、
 users/_user.html.erb
のような、同一viewで複数回参照されるものに対しても<%= render '~~' %>を使ってレンダリングしたくなってくるのですが、<% provide :name, user.name %>で渡すと

  • 1人目 佐藤
  • 2人目 佐藤田中
  • 3人目 佐藤田中小杉
  • 4人目 佐藤田中小杉鈴木

と、値をストックしてしまってまともにidを渡せずに、しばらく困っていました。

#content_forを使う

そもそもyieldに、provide以外で渡す方法を知らなかったのですが、調べてみると、


<% content_for :name, flush: true do %>
 <%= user.name %>
 <% end %>

として、content_forで渡せば

  • 1人目 佐藤
  • 2人目 田中
  • 3人目 小杉
  • 4人目 鈴木

と、その場で表示したいidや名前だけにできるようです。

備忘録と、調べてもなかなか出てこなかったので、同じ悩みを抱えている方に役立てばいいなと思いつつメモ。

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

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?