LoginSignup
11
11

More than 5 years have passed since last update.

partialで部分テンプレ返す時に、複数回呼び出されてしまって困ったやつ

Posted at

やろうとしたことは

  • Facebookのタイムラインのように、スクロールした際にajaxでリクエスト
  • 部分テンプレ返してもらって描画

そうすると 複数回テンプレが描画されてしまって困った というやつです。

知ってればなんてことないのですが、知らなくて無駄にハマったのでメモ。
一応あまりバージョン関係ないと思うのですが、Rails4.1とRuby2.1.2で書いてます。

--

もともと私が書いていた描き方が

# controller

html = render_to_string partial: 'layouts/more_somethings', collection: [@hoge, @fuga]
render json: { html: html }

これをajaxで受け取ってました。
ただ、これだとmore_somethingsが同じものが2回呼び出されてしまいます。

下記が正解

# controller

html = render_to_string partial: 'tag/more_somethings', locals: { hoge: @hoge, fuga: @fuga }
render json: { html: html }

知ってれば、というかちゃんと調べてれば問題なかったのですが。。

collectionは確かに複数変数を渡せますが、渡した数だけpartialをrenderするという特徴があります。
なので上記の場合2回renderされてしまうということが起こってました。。

11
11
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
11
11