忽略TimeStamps Postgres和Rails

时间:2016-01-15 14:02:32

标签: ruby-on-rails postgresql

我有一个rails应用程序,可以保存来自不同提供商的日期/时间信息以用于调度信息。然后,我需要提取该数据以查看一系列计划。 Rails正在将其转换为UTC时间。有没有保存没有翻译的日期时间?

例如,他们会给我他们当地的日期/时间(我无法知道他们在哪里),我需要以与输入相同的方式将其提供给用户。

2 个答案:

答案 0 :(得分:0)

有一个设置允许将日期保存在本地时区而不是UTC中。在application.rb中,您需要设置:

config.active_record.default_timezone = :local

此外,如果您不想以这种方式保存所有次,我建议您浏览一下this timestamp documentation。具体来说,在一个类中,您可以添加以下行:

self.skip_time_zone_conversion_for_attributes = [:written_on]

答案 1 :(得分:0)

您可以创建其他列并将用户输入存储为字符串。这样,您可以选择在保存时将其转换为DateTime对象,并保存用户提交的原始字符串。应该给你两全其美。

在您的模型中,例如:

before_save :convert_time
def convert_time
  # save the timestamp in the format you need
  self.time = DateTime.strptime(user_input_time, "%Y-%m-%dT%H:%M:%S%z")
end

这样你就可以在视图中获得用户输入

<%= your_object.user_input_time %>