我有一个使用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)

10-06 15:23