Par*_*ngh 0 ruby ruby-on-rails rails-models
我是铁杆新手.以下代码以Foo作为模型对象:
a = Foo
a = Foo.where(age: 18)
if params[:sort] == "desc"
a = a.order("name desc")
end
Run Code Online (Sandbox Code Playgroud)
这里执行了两个查询,我想将它们组合成一个,或者你可以说我想要执行 Foo.where(age=18).order("name asc")
请记住,当不需要订单时可能存在这种情况,即params [:sort]不等于desc.
请不要给出解决方案
if params[:sort] == "desc"
a = a.where(age=18).order("name desc")
else
a = a.where(age=18)
end
Run Code Online (Sandbox Code Playgroud)
因为它使代码冗余,并且对于更多参数,它可能不起作用.
不,你错了.实际上,这里不执行任何查询.
a = Foo
a = Foo.where(age=18)
if params[:sort] == "desc"
a = a.order("name desc")
end
Run Code Online (Sandbox Code Playgroud)
在您开始检索数据的位置发送实际查询.也就是说,做点什么
a.each do |b|
# do something with b
end
Run Code Online (Sandbox Code Playgroud)
在那之前,你可以放心地连锁标准的建筑方法(where,order,select等).
| 归档时间: |
|
| 查看次数: |
265 次 |
| 最近记录: |