我有一个使用ActiveRecord的脚本,该脚本根据从CSV文件读取的值动态创建列名,如下所示:
FasterCSV.foreach('votes.csv', :headers => true) do |row|
column_name = "roll_call_id_#{row['roll_call_id']}"
if !Legislator.columns.map(&:name).include?(column_name)
connection_pool.connection.add_column('legislators', column_name, 'string')
end
end
问题在于,在创建新列之后,我无法执行
legislator.update_attribute(column_name, value)
,因为该类未选择新列并且抱怨它不存在。如何使其再次查询表结构?
最佳答案
Legislator.reset_column_information
(API info)