我是rails新手。這裏是富下面的代碼模型對象:Rails:將兩個查詢合併爲一個
a = Foo
a = Foo.where(age: 18)
if params[:sort] == "desc"
a = a.order("name desc")
end
這裏進行兩個查詢,我想將它們合併到一個或者你可以說我想執行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
。
附註:恕我直言,重新使用名稱變量不是一個好的編程習慣。隨着時間的推移,用有意義的名稱創建新變量,跟蹤該函數(並調試它)變得更容易。 – tokland 2012-08-03 07:40:26
@tokland將在未來嘗試遵循這一點。 – 2012-08-03 07:42:05
另外,'where(age = 18)'是什麼?它不應該是「哪裏(年齡:18)」或「哪裏(年齡= 18」)? – 2012-08-03 07:44:42