LoginSignup
19
13

More than 3 years have passed since last update.

render メソッドの高速繰り返し処理について

Posted at

renderメソッドを使って、高速繰り返し処理をする。

1. 具体例の提示

以下において、二つの例を挙げて、両者を処理速度を比較しつつ説明する。
例1

@users = User.all
@users.each do |user|
  = render 'user',  user: user

例2

@users = User.all
  = render 'user', users: @users

上記のうち例2のコードが、renderメソッドを使った、高速繰り返し処理を可能にしたコードである。

2. 両者における処理速度の違いについて

例1における処理速度

例1では、@ usersにeachを使用して、user一人一人に対してrenderを実行している。そのため、userの数が多ければ多いほど、処理の実行が大きなり、かつ、処理速度が遅くなりやすい。

例2における処理速度

他方で、例2では、renderする際の変数に@ usersを渡している。そのため、renderは、@ usersという一つの変数を実行すればよいことになる。また、userの数が多くなったとしても、変数自体の数は増えないので、処理の速度はそのまま維持される。よって、例1のコードよりも処理速度が早くなるのである。

なお、render @ users と省略して記述することも可能である。

                           以上

19
13
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
19
13