0
我有一個數據庫,我需要按整個表的長度對整個表進行排序,但是我有堆棧。在DataMapper中對元素進行排序
require 'dm-core'
require 'dm-migrations'
require 'sinatra/reloader'
DataMapper.setup(:default, "sqlite3://#{Dir.pwd}/development.db")
class Item
include DataMapper::Resource
property :id, Serial
property :length, Integer
end
...
DataMapper.finalize
post '/items/sort/?' do
5.times do
val = rand(100)
Item.create(length: val)
end
Item.update(Item.sort_by { |_key, value| value })
redirect to('/items')
end
我怎樣才能正確地執行它,這樣我的數據庫將更新與length
要素排序?謝謝。
您想要做什麼? 'Item.update(Item.sort_by {| _key,value | value})'語句的含義是什麼? – marmeladze
用id長度對填充數據庫後,現在我想按照長度對此表進行排序。例如,在我的表中有'@ id = 1,@ length = 3','@ id = 2,@ length = 2','@ id = 3,@ length = 4',我想要一個'@ @ id = 2,@ length = 2','@ id = 1,@ length = 3','@ id = 3,length = 4',所以只需用'length'參數對它們進行排序。該語句意味着數據庫應該使用排序後的數據更新自己(假設它代表'id => length'哈希中的所有內容)。 – NLis