Ruby on rails 在我的Rails控制器显示方法中使用备忘录有什么好处吗?

Ruby on rails 在我的Rails控制器显示方法中使用备忘录有什么好处吗?,ruby-on-rails,controller,ruby-on-rails-5,memoization,Ruby On Rails,Controller,Ruby On Rails 5,Memoization,我使用的是Rails 5.1。我想知道在我的控制器中使用备忘录是否有什么好处。例如,我有下面的show方法 class PartsController < BaseController def show @part = Part.find(params[:id]) end 但由于控制器的一个新实例是由一个请求创建的(请对该断言保持诚实),因此我的“@part”似乎永远不会被重用。我错了吗?我应该在这里使用备忘录来提高性能吗?不,这里没有好处。您可以用某种方式为它编写测试

我使用的是Rails 5.1。我想知道在我的控制器中使用备忘录是否有什么好处。例如,我有下面的show方法

class PartsController < BaseController

  def show
    @part = Part.find(params[:id])
  end

但由于控制器的一个新实例是由一个请求创建的(请对该断言保持诚实),因此我的“@part”似乎永远不会被重用。我错了吗?我应该在这里使用备忘录来提高性能吗?

不,这里没有好处。您可以用某种方式为它编写测试,这样就只使用了控制器类的一个实例,但我从未见过有人为控制器类这样做——可能是因为它们在现实生活中不是这样使用的。

不需要。每个请求都会触发控制器的新实例。然后将控制器实例中的所有实例变量复制到ActionView实例。然后渲染视图并收集实例变量。
  def show
    @part ||= Part.find(params[:id])
  end