Ruby+;ActiveRecord:如何配置导致';yyyy-mm-dd';日期格式?
我正在使用ActiveRecord 4.2.4处理数据库 一些背景: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
- 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