【问题标题】:How efficient is the current_page? helper method?current_page 的效率如何?辅助方法?
【发布时间】:2012-05-30 14:01:08
【问题描述】:

我很好奇 Rails current_page? 辅助方法的效率。我在一个视图中使用,大致如下图:

  <% if current_page?(:action => "foo") %>
    <dt>Label 1:</dt>
  <% else %>
    <dt>Label 2:</dt>
  <% end %>

  <% if current_page?(:action => "foo") || current_page(:action => "bar") %>
    <dt>Label 1:</dt>
  <% else %>
    <dt>Label 2:</dt>
  <% end %>

但是以其他方式进行此切换会更有效吗?例如,在我的控制器操作中为foobar 设置一个实例变量,然后检查&lt;% if @foo || @bar %&gt; 会更有效吗?

Rails 2 和 Rails 3 在效率上有什么区别?

【问题讨论】:

    标签: ruby-on-rails ruby-on-rails-3 ruby-on-rails-2


    【解决方案1】:

    我无法说出 Rails 2 和 Rails 3 之间的区别,但看看source code in ActionPack,看起来该方法并没有做任何特别复杂的事情。 url_for 可能效率稍低(我不知道),但除非你在这个部分上进行大量循环,否则优化它可能不会为你节省大量时间。

    也就是说,做一些基本的基准测试很容易——t = Time.now;在一个版本上循环 1000 次; v1_time = t - Time.now; t =时间.现在;冲洗并重复另一个版本。如果你这样做了,请告诉我你发现了什么。

    综上所述,在我看来,如果这些标志可以表示为与视图不直接相关的概念,那么让你的控制器方法设置适当的标志在概念上可能会更清晰。我很好奇其他人的想法。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2011-03-27
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-08-03
      • 1970-01-01
      相关资源
      最近更新 更多