我使用终端在mysql中插入一列然后在rails中我试图获取列
puts (Class.new(ActiveRecord::Base) { self.table_name = 'sample_tables'}).column_names
但它不会显示插入的列。我需要首先刷新我的轨道以显示它。在获取列之前,我需要添加什么代码来刷新连接?
我使用rails c
对其进行了测试。在此先感谢您的帮助。
(Class.new(ActiveRecord::Base) { self.table_name = 'sample_tables'}).reload
但它不起作用。
答案 0 :(得分:1)
方法" column_names "只获取一次名称,并在总是返回旧值之后。
def column_names
@column_names ||= columns.map { |column| column.name }
end
http://apidock.com/rails/ActiveRecord/Base/column_names/class
尝试使用" reset_column_information "清理方法@column_names
http://apidock.com/rails/ActiveRecord/Base/reset_column_information/class