選擇我有這樣Rails的ActiveRecord的:以特定的順序
order_id = 4
Order.find(order_id, :select => 'orders.root_id, orders.lft, orders.rgt').attributes
查詢返回類似
{"lft" => 1, "rgt" => 10, "root_id" => 9}
,需要順序的數組:root_id,LFT,RGT。任何提示任何人?
選擇我有這樣Rails的ActiveRecord的:以特定的順序
order_id = 4
Order.find(order_id, :select => 'orders.root_id, orders.lft, orders.rgt').attributes
查詢返回類似
{"lft" => 1, "rgt" => 10, "root_id" => 9}
,需要順序的數組:root_id,LFT,RGT。任何提示任何人?
attrs =Order.find(order_id, :select => 'orders.root_id, orders.lft, orders.rgt').attributes
array = [attrs['root_id'], attrs['lft'], attrs['rgt']]
呀?
呃,很簡單... – Trevor
對於訂購,您可以應用sort
方法獲得結果。
h = {"lft" => 1, "rgt" => 10, "root_id" => 9}
h.sort { |x,y| y <=> x }
=> [["root_id", 9], ["rgt", 10], ["lft", 1]]
Order.find(order_id, :select => 'orders.root_id, orders.lft, orders.rgt').attributes.sort { |x,y| y <=> x }
最簡單的按鈕,這裏是自己做的轉換,因爲你正在處理的一個記錄:
order_array = [order.root_id, order.lft, order.rgt]
更大的問題可能是「爲什麼?」,答案很可能是你」重做錯誤™。
Order.find(order_id,
:select => 'orders.root_id, orders.lft, orders.rgt').attributes
.values_at("root_id", "lft", "rgt")
感謝您的編輯。 –
'{「lft」=> 1,「rgt」=> 10,「root_id」=> 9}'是一個哈希你希望它是數組嗎? – Bohdan
邑,我需要[9,1,10] – Trevor