1
我們希望動態地對數據庫進行排序。排序順序存儲在紅寶石哈希 -續集中的動態排序順序
sortorder = [
{
'property' => 'company',
'direction' => 'asc'
},
{
'property' => 'name',
'direction' => 'asc'
},
{
'property' => 'id',
'direction' => 'desc'
}
]
我們正在試圖建立這樣的查詢 -
query = DB[:contacts]
sortorder.each do |s|
column = s['property']
direction = s['direction'].downcase
if direction == 'asc'
query = query.order_append(column.to_sym)
else
query = query.order_append(column.to_sym).reverse
end
end
但是,查詢出現這樣
#<Sequel::SQLite::Dataset: "SELECT * FROM `contacts` ORDER BY `company` DESC, `name` DESC, `id` DESC">
也就是說,所有列按「降序」順序排列(最後'方向'給出)
我們如何確保查詢與給定的散列匹配?另外,如果這可以以更好的方式完成,它將非常非常有幫助。
謝謝斯蒂芬。你是一個救星! – globetrotter 2012-07-11 07:56:29