Railsは初めてです。モデルオブジェクトとしてFooを使用した次のコードは次のとおりです。
a = Foo
a = Foo.where(age: 18)
if params[:sort] == "desc"
a = a.order("name desc")
end
ここでは2つのクエリが実行されます。それらを1つに結合するか、実行したいと言うことができます。 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
コードが冗長になり、パラメータが増えると機能しない可能性があるためです。