gpt4 book ai didi

mysql - Rails Time to String - 要么忽略函数,要么随机行为

转载 作者:行者123 更新时间:2023-11-29 13:24:58 25 4
gpt4 key购买 nike

在 Ruby on Rails 3 中,我正在尝试修改我的 Model数据集的日期仅显示小时和分钟,然后我将其作为 AJAX 字符串返回。

我的代码如下:

 list_of_time_fields = [:a, :list, :of, :symbols]
result = Model.where(conditions).take(100)
result.each { |row|
list_of_time_fields.each { |field|
row[field] = row[field].strftime("%H:%M") unless row[field].nil?
}
}
return result

对于某些字段,我得到整个时间字符串(类似于 yyyy-mm-ddTHH:MM:ssZ ),对于其他字段,我得到 null即使该字段不为空。不同的是,返回字符串的是 TIME MySQL 中的字段,而其他字段是 DATETIME .

我已经检查了 Rails 将这些列映射到的类型,一切都是 class Time .

如果您能指出我应该看哪些内容,那就太好了。

最佳答案

将时间字符串分配给属性时:

row[field] = row[field].strftime("%H:%M")

Rails 解析字符串并创建一个新的日期时间(实际上是一个 ActiveSupport::TimeWithZone)对象:

user = User.new
user.created_at = "01:00"
#=> "01:00"
user.created_at
#=> Thu, 28 Nov 2013 01:00:00 CET +01:00

使用自定义哈希就可以了。像这样的东西:

result = Model.where(conditions).take(100).map { |model|
{
id: model.id,
time_field: model.time_field.try(:strftime, "%H:%M")
}
}
render json: result

JBuilder可能是另一种选择。

关于mysql - Rails Time to String - 要么忽略函数,要么随机行为,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20264206/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com