澄清铁路找到方法

时间:2013-09-20 07:11:24

标签: ruby-on-rails

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

2 个答案:

答案 0 :(得分:1)

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

Rails会缓存对同一对象的find的重复调用,因此除非参数或其他参数不同,否则每次都不会访问数据库。

答案 1 :(得分:0)

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

根据我的经验(目前不在带有rails的计算机上)我认为除非您使用tplangroup创建.includes(:tplan)以进行预先加载,否则它会在每次调用中访问数据库。 / p>

希望这有帮助