-2

find在我看来,我经常调用 rails方法。这是普遍接受的良好做法吗?我倾向于不,但为什么呢?find每次都调用数据库吗?它会在任何地方缓存结果吗?我查看了 ruby​​/rails 文档,find但他们没有指定它是否每次都调用数据库。

4

2 回答 2

1

find不,从视图中调用不是一个好主意。控制器的工作是加载和组装视图所需的所有数据,并将其传递给视图以呈现给用户。

对同一个对象的重复调用find应该被 Rails 缓存,所以它不会每次都访问数据库,除非参数或其他参数不同。

于 2013-09-20T08:18:46.783 回答
0

一个非常简单的测试方法是启动终端并运行rails c. 在控制台中,运行返回的代码tplangroup并在控制台中使用它。您应该能够在开发控制台中看到数据库调用。

根据我的经验(现在不是在带有 rails 的计算机上),我认为它会在每个调用中访问数据库,除非您tplangroup使用.includes(:tplan)for eager loading 创建。

希望这可以帮助

于 2013-09-20T07:28:58.263 回答