在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
有效处理
答案 0 :(得分:2)
您在寻找properties
吗?
http://rubydoc.info/gems/dm-core/1.1.0/DataMapper/Model/Property
答案 1 :(得分:0)
对于任何Ruby对象,您都有方法instance_variables
,它返回该对象属性的数组。这对你来说太通用了吗?我不熟悉DataMapper,可能有一种特定的方法可以在ActiveRecord中执行等效的column_names
。