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 と省略して記述することも可能である。
以上