ruby-on-rails - 在 ActiveRecord 模型类中重新加载列名称

标签 ruby-on-rails database activerecord scripting schema

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

关于ruby-on-rails - 在 ActiveRecord 模型类中重新加载列名称,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1756325/

相关文章:

ruby-on-rails - CSS 未在 Heroku 中加载

ruby-on-rails - 升级到 Rails 5.0 后 ActionController::Parameters to_query 失败

mysql - 如何识别同一行内 3 个不同列中的重复数据并删除第二组重复数据?

activerecord - Rails 4 simple_form owns_to 关联未定义方法错误

ruby-on-rails - Ruby on Rails- :symbols, @iVars 和 "strings"- 天啊!

ruby-on-rails - 如何在模块中使用动态选择的类

sql - 如何在不删除表的情况下更新数据库模式

php - 如何获取 max(colUmn) 值,其中 colUmn 是 mySQL 中的 TimeStamp 类型

php - CodeIgniter:如果 Active Record 找不到任何数据,则返回 FALSE

ruby-on-rails - 将保存回调添加到单个 ActiveRecord 实例,可以吗?