您好我目前有一个获取Klass.all.map{|m| m.name}
的辅助方法。现在我使用id来从数组中获取名称,如果我添加更多,它将自动更新。
当我在视图的循环中使用这个辅助方法时,我认为每次都会进行多次查询以获得Klass,这意味着需要进行大量的额外工作。
我想知道如何“缓存”这个数组,或者我应该这样做更好。
谢谢!
答案 0 :(得分:2)
如果您处于同一操作中,则会自动执行SQL缓存。您可以查看here以获取更详细的说明。顺便说一句,使用pluck
可能会更有效,就像在Klass.pluck(:name)
中一样。这将优化您的SQL查询。
答案 1 :(得分:1)
您的帮助方法应与此类似
def klass_names
@klass_names ||= Klass.all.map{|m| m.name}
end