Ruby+;ActiveRecord:如何配置导致';yyyy-mm-dd';日期格式?

Ruby+;ActiveRecord:如何配置导致';yyyy-mm-dd';日期格式?,ruby,activerecord,Ruby,Activerecord,我正在使用ActiveRecord 4.2.4处理数据库 一些背景: Ruby“1.9.3” ActiveRecord“4.2.4” 黄瓜“2.1.0” 我没有使用Rails 我最近遇到了这个问题,生成的输出文件显示: ROLE | UPDATED_DATE Teacher | 2016-10-26 09:54:06 UTC 但我不希望更新日期中出现“2016-10-2609:54:06 UTC”,我希望文件中只显示“2016-10-2

我正在使用ActiveRecord 4.2.4处理数据库

一些背景:

  • Ruby“1.9.3”
  • ActiveRecord“4.2.4”
  • 黄瓜“2.1.0”
  • 我没有使用Rails
我最近遇到了这个问题,生成的输出文件显示:

   ROLE             | UPDATED_DATE
   Teacher          | 2016-10-26 09:54:06 UTC
但我不希望更新日期中出现“2016-10-2609:54:06 UTC”,我希望文件中只显示“2016-10-26”,如下所示:

   ROLE             | UPDATED_DATE
   Teacher          | 2016-10-26
UPDATED_DATE列在表中具有日期类型。我执行查询时没有将其转换为任何内容。我没有使用Ruby对象/模型来映射数据库表,我只是简单地运行SQL并将结果打印到一个文件中。以下是代码中的内容:

 def initialize
   ActiveRecord::Base.time_zone_aware_attributes = false

   db_config = DBConfig.get_config_file(DB_CONFIG)
   ActiveRecord::Base.establish_connection(
    :adapter =>  db_config['adapter'],
    :username => db_config['username'],
    :password => db_config['password'],
    :database => db_config['database']
  )

  @connection = ActiveRecord::Base.connection
end

def extract_file
  delimiter = '|'
  output_file = 'extract.txt'
  query = "Select role, UPDATED_DATE from ROLE where USER_ID = 'user1'"
  # loop through the result
  File.open(output_file, 'w'){|f|
    result = @connection.exec_query(query)
    result.rows.each do |row|
      array << (row.join(delimiter))
      if array.length >= 100
        f.puts array.join("\n")
        array = []
      end
    end
end
但是,我得到了以下错误:

  undefined method `record_timestamps=' for ActiveRecord::Timestamp:Module
根据网站:

     http://www.rubydoc.info/gems/activerecord/4.2.4/ActiveRecord/Timestamp

     Timestamping can be turned off by setting:

     config.active_record.record_timestamps = false

在哪里配置它?在config/database.yml文件中?请分享您的解决方案。

如果您只对上次更新的日期而不是时间感兴趣,则有两种选择:

  • 不要在数据库中使用
    更新的
    时间戳
    列。改为在
    日期
    列上使用
    updated\u,Rails magic将完成其余部分。或
  • 在写入输出文件之前,将
    时间戳
    转换为
    日期
    数据类型。一个简单的
    更新日期将完成这项工作

  • 如果您只对上次更新的日期而不是时间感兴趣,则有两个选项:

  • 不要在数据库中使用
    更新的
    时间戳
    列。改为在
    日期
    列上使用
    updated\u,Rails magic将完成其余部分。或
  • 在写入输出文件之前,将
    时间戳
    转换为
    日期
    数据类型。一个简单的
    更新日期将完成这项工作
  •      http://www.rubydoc.info/gems/activerecord/4.2.4/ActiveRecord/Timestamp
    
         Timestamping can be turned off by setting:
    
         config.active_record.record_timestamps = false