def get_users(options={})
options[:order_col] ||= "created"
options[:order_type] ||= ""
User.where(:region=>123).order("#{options[:order_col]} #{options[:order_type]}")
end
options[:order_col] ||=
が本当に言っている:
options[:order_col] = options[:order_col] || ""
英語で他の賢明""
、集合場合options[:order_col]
にoptions[:order_col]
を設定言っています。 order_typeを""
に設定することができます。これは、SQLではデフォルトでASCが結果の順序付けを行うためです。
例:
get_users #=> return ordered by created ASC
get_users(:order_col => "sales_count") #=> return order by sales count ASC
get_users(:order_col => "sales_count", :order_type => "DESC") #=> sales_count, DESC
# etc
これはしかしSQLインジェクションに開いてあなたを残していないのですか? – Blankman