表列名称为ruby中的数组

时间:2013-02-13 18:26:04

标签: ruby sinatra datamapper

在Rails中,我只想使用:

MyModel.column_names

访问表的列名,但我忍受了我与Sinatra的第一次摸索(为了更好地学习Ruby)并且需要将表的列名称放到数组中。

以前,我已经迭代了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>

那么,我怎样才能将那些我能清楚看到的爆破列名称放到数组中?

...谢谢

更新

感谢Doon指出我使用Datamapper属性的正确方向。

我最终创建了一个私有方法column_names:

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

有效处理

2 个答案:

答案 0 :(得分:2)

答案 1 :(得分:0)

对于任何Ruby对象,您都有方法instance_variables,它返回该对象属性的数组。这对你来说太通用了吗?我不熟悉DataMapper,可能有一种特定的方法可以在ActiveRecord中执行等效的column_names