2013-02-13 85 views
1

在Rails我會簡單地使用:表列名數組中的紅寶石

MyModel.column_names 

訪問的表列名,但我忍受我與西納特拉第一fumblings(爲了更好地學習紅寶石)和需要將表的列名稱獲取到數組中。

此前,我曾遍歷params哈希表中提取鍵,值對:

params.each do |key, value| 
    #manipulate keys and values 
end 

,並知道使用:

@mm = MyModel.new 
@mm.each do .... 

導致一個未定義的方法 '每個' 錯誤。

logger.info @mm.inspect 

日誌是這樣的:

#<MyModel @id=nil @start=nil @end=nil @yada=nil @created_at=nil @updated_at=nil @foreign_id=nil> 

所以,我怎麼得到那些抨擊列名,我可以看到這麼清楚到一個數組?

謝謝...

UPDATE

感謝遁指着我與DataMapper的性質正確的方向。

我最終作出的私有方法:COLUMN_NAMES

def self.column_names 
    self.properties.collect {|column| column.name.to_s } 
end 

其中工程請客

回答

0

對於任何Ruby對象,你有一個返回對象的屬性的陣列的方法instance_variables。這對你來說太普通了嗎?我對DataMapper不熟悉,可能有一種特定的方法可以在ActiveRecord中執行相當於column_names的操作。