1

如何防止多次迭代和访问的条件多次访问数据库?

在 Rails 控制器中使用以下方法的示例:

def current_somethings
  Something.limited
end
helper_method :current_somethings

其中Something模型包含 Mongoid::Document 且有限范围仅包含部分字段。

current_somethings每次我在控制器或视图中访问时,Mongoid 都会访问数据库。

MONGODB (37ms) staging['somethings'].sort([[:name, :asc]])
MONGODB (31ms) staging['somethings'].sort([[:name, :asc]])
MONGODB (137ms) staging['somethings'].sort([[:name, :asc]])
MONGODB (38ms) staging['somethings'].sort([[:name, :asc]])

我已经尝试过.cache 方法,但它似乎对我没有任何作用。

如何防止同一查询多次运行?同时,理想情况下,保留在需要时根据标准调用其他方法的能力。

Mongoid 2.6.0。

4

0 回答 0