この場合、どちらのパターンが速くなりますか?
明らかに、ヘルパーを使用した Pattern1 は、はるかに洗練され、きれいに見えます。
ただし、user_link メソッドが呼び出されるたびに SQL を送信します。
ここでは、1 ページの読み込みで最大 100 回呼び出します。
ベンチマークのパフォーマンスを向上させるには、どちらの方法がよいでしょうか?
パターン1. ヘルパー付き
application_helper
def user_link(username)
link_to User.find_by_username(username).user_profile.nickname, show_user_path(username)
end
見る
<% @topics.order("updated_at DESC").limit(100).each do |topic| %>
<%= user_link(topic.comment_threads.order("id").last.user.username) if topic.comment_threads.present? %>
<% end %>
パターン2. ヘルパーなし。見るだけ
<% @topics.order("updated_at DESC").limit(100).each do |topic| %>
<%= link_to(topic.comment_threads.order("id").last.user.nickname, show_user_path(topic.comment_threads.order("id").last.user.username) ) if topic.comment_threads.present? %>
<% end %>