在创建一些应用程序时,我注意到我在控制器中创建了多个相同对象的实例,以便从不同的页面访问它们。例如:
def index
@categories = Category.all
@category = Category.new
end
def new
@category = Category.new
@categories = Category.all
end
这样的重复会影响我的应用程序的加载速度吗?是否有方法对其进行优化?或者我应该放松并继续在我的方法中创建新对象?
答案 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