在 Rails 中,我们通常会遇到从视图(甚至是助手)触发一些查询的情况。例如,如果我想在我的页面中添加一个选择框,我会写如下内容;
<%= collection_select(:person, :city_id, City.all, :id, :name) %>
这个例子取自 Rails Guides。在这里,我们使用了“City.all”而不是实例变量。我的问题是,这会对我的应用程序的性能产生任何影响吗?
以下是做同样事情的更好方法吗?为什么?
在控制器中:
@cities = City.all
然后在视图中:
<%= collection_select(:person, :city_id, @cities, :id, :name) %>