渲染助手link_to时处理速度慢

时间:2017-06-27 16:15:38

标签: ruby-on-rails ruby

我正在显示3k用户。当渲染帮助程序link_to处理渲染速度变慢时。这需要很多时间。

这是我的模板

- @user.each do |user|
      %tr
        %td= link_to_user_modal user
        %td.text-right
          = link_to edit_user_path(user.id),
                    class: 'btn btn-default btn-xs',
                    title: 'Edit' do
            %span.glyphicon.glyphicon-pencil

          = link_to user,
                  method: :delete,
                  title:  'Delete',
                  data:   { confirm: "Are you sure you want to delete #{user}?" },
                  class:  "btn btn-danger btn-xs" do
            %span.glyphicon.glyphicon-trash

1 个答案:

答案 0 :(得分:2)

渲染普通的html而不是使用帮助器可以大大提高渲染所需的时间。 它没有那么多" link_to"这会给渲染带来负担,但更多的是path_helper。虽然在视图中放置原始html比以往任何一个都快:

this.selectedDate['date'] = new Date(this.selectedDate['pristine']);

而不是

<a href="the/path/the_helper/would/render/#{user.id}" target="_blank" class="whatever">Edit</a>

甚至(因为助手是最大的罪魁祸首)

link_to path_helper

check ruby-prof for the call trace - the only line that was changed was link_to to pure html with the id inserted dynamically into the href string

我还使用路径助手使用href测试了标记,虽然它比使用路径助手的link_to快,但它比使用href作为字符串慢。您还可以看到我没有在标记的href上调用.html_safe,这样也可以在标记中更快地呈现它。