您想要手工製作一個特殊查詢,而不是基於任何特定模型。這裏的一列,一列,可能是一個計數,總和,或其他caluculation。這是我想出的一種方式...這是一個從數據庫中獲取任意數據的好方法嗎?
>> results = ActiveRecord::Base.connection.execute(
'SELECT location, count(*) AS count FROM contracts
GROUP BY location
ORDER BY location')
=> #<Mysql::Result:0x103197e50>
>> arr = []
=> []
>> results.each { |row| arr << [row.first, row.last] }
=> #<Mysql::Result:0x103197e50>
>> arr
=> [[nil, "189"], ["", "4"], ["Canceled", "12"], ["Cancelled", "4"], ["Closed", "1"], ["Contract - Asst", "4"], ["Contracts - Admin", "5"], ["Exec - Operations", "2"], ["Exec - Policy", "1"], ["Executive", "1"], ["Finance", "25"], ["Fully Executed", "3631"], ["General Counsel", "11"], ["On-Hold", "27"], ["Pending Distribution", "2"], ["Pending Signature", "40"], ["Per Stephen W.", "1"], ["Project Manager", "26"], ["Upcoming", "1"]]
但我就像有史以來最差的程序員。一個好的程序員會怎麼做?
特別是,有沒有一種更簡潔的方式來訪問Mysql::Result
對象中的數據?爲什麼我得到一個Mysql::Result
而不是一些通用的,非數據庫特定的數據結構?
(如果它的事項,在這種特殊情況下,我將使用二維數組來填充一個選擇菜單,但它可以是任何東西。)
這些是您嘗試執行的特定查詢嗎?如果是的話,你(或我或其他答覆者)可以編寫一個ActiveRecord鏈來獲取你需要的數據。 – 2011-06-07 21:01:35