我在 Controller 中设置了这两个变量。我该如何缓存它们,以使它们不会每次都与数据库进行通信,而只是第一次。

@tablenutrients = Nutrient.find(:all)
@columnnutrients = @tablenutrients.collect {|x| x.nutrient}

最佳答案

@djlumley说了什么。

通常,您还可以配置并使用ActiveSupport::Cache::Store显式存储您自己的自定义变量。然后,您可以获取/设置缓存的值,例如,如下所示:

@tablenutrients = Rails.cache.fetch("tablenutrients") do
  Nutrient.find(:all)
end

09-16 22:18