在控制器方法中创建重复对象时是否存在问题?

时间:2013-07-22 15:01:39

标签: ruby-on-rails ruby

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

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

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

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

1 个答案:

答案 0 :(得分:1)

你可以使用||减少一些时间operator,用于在实例变量中存储昂贵命令的最终结果!

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

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

观看此视频直播视频

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