2011-10-14 38 views
1

樂代碼:Ruby on Rails 2.3.8:如何執行自定義SQL查詢,作爲對象/ ActiveRecord對象返回,而不是散列?

ActiveRecord::Base.connection.select_all("Le Query") 

以上將返回格式化爲這樣的散列:

{"name"=>"title", "sequence"=>"0", "body"=>"", "section_id"=>"74", "id"=>"325", "revision"=>"2"} 

現在,通常情況下,如果只是做ModelName.find(conditions),我會得到類似如下:

#<ObjectName id: 272, name: "title", body: "", sequence: 0, section_id: 89, revision: 0> 

現在,有沒有辦法將散列轉換爲這樣的格式,如果散列存儲在變量「a」中,我可以做一些事情吳象:

a.name 

就像是一個有效記錄的對象,而不是

a["name"] 

,因爲我與上述哈希

回答

3

MyModel.find_by_sql("Le Query")

0

你嘗試這樣做現在?

a = ModelName.new(ActiveRecord::Base.connection.select_all("Le Query")) 
+0

啊,還挺。它不會讓我設置ID ...我需要爲視圖做,並且我的整個功能都是乾的。錯誤:警告:不能批量分配這些受保護的屬性:id – NullVoxPopuli

+0

嘗試從標記中提取標識並將其設置爲對象之後? –

相關問題