1

在创建一些应用程序时,我注意到我在控制器中创建了相同对象的多个实例,以便从不同的页面访问它们。例如:

def index
  @categories = Category.all 
  @category = Category.new 
end

def new
  @category = Category.new 
  @categories = Category.all
end

这种重复是否会影响我的应用程序的加载速度,是否有办法对其进行优化?还是我应该放松并继续在我的方法中创建新对象?

4

1 回答 1

1

您可以使用 || 减少一些时间 运算符,将昂贵命令的最终结果存储在实例变量中!

def index
  @categories ||= Category.all 
  @category = Category.new 
end

def new
  @category = Category.new 
  @categories ||= Category.all
end

观看此 railscasts 视频

http://railscasts.com/episodes/1-caching-with-instance-variables

于 2013-07-22T15:13:19.130 回答