我需要做的是我希望能够创建一个包含动态列的表,从哈希中检索列名及其数据类型。
请以下面的代码片段为例:
COLUMNS = { :column1 => 'integer',
:column2 => 'string',
:column3 => 'string',
:column4 => 'date'
}
以静态方式,我可以这样做:
create_table :details do |t|
t.integer column1
t.string column2
t.string column3
t.date column4
t.timestamps
end
但是,你知道,这看起来有点硬编码,我对此并不满意。
我的想法是让它更像:
create_table :details do |t|
COLUMNS.each_pair do |key,value|
#to define each column and its data type
t[value] key
end
t.timestamps
end
不幸的是,它似乎并没有按我想要的方式工作。