我有一个页面可以显示所有客户的详细信息,或者如果在参数中指定,则仅显示一个客户的详细信息。
我的控制器看起来像这样。
def display_customers
@all_customers = Customer.all
if params[:customer_id]
@customers = Customer.find(:all, conditions: ["id = ?", params[:customer_id]])
else
@customers = @all_customers
end
end
我@all_customers
用来填充客户的下拉列表。
我曾经通过每个客户@customers
执行一个each
循环。
然后,如果customer_id
指定了参数,@customers
则将只是单个客户。
这工作得很好,但是@customers = Customer.find(...)
是一个额外的数据库查询。
我已经拥有了所有的客户,@all_customers
所以我认为有一种更好的方法可以从那里获取我需要的一条记录——而不是再次回到数据库。