ruby-on-rails - 如何使用 Rails3 更改 xml 响应中的日期时间?

标签 ruby-on-rails datetime

我在 Mac 机器上使用 Rails 3.0.4、Ruby 1.9.2p0。在使用 Sqlite 作为默认数据库并成功添加 respond_to :xml 功能时,我看到 xml 中的日期时间格式类似于:

<updated-at type="datetime">2011-03-20T12:15:47Z</updated-at>

虽然网络上有几篇帖子(也在这里)询问如何更改日期/时间格式,例如使用 config/locale/en.yml 中的配置,或添加

Time::DATE_FORMATS[:default] = "%Y-%m-%d %H:%M:%S"

在初始化文件中,两者都不起作用。

我认为问题是因为当我调用 someobj.to_xml 时,对于 datetime 对象,rails 会调用

datetime.xmlschema

而不是调用

datetime.to_s

绕过了上面提到的设置。 虽然我知道这可能是罪魁祸首,但我不知道如何解决。有人有这方面的经验吗?非常感谢!

最佳答案

如果你绝对需要改变它,你可以覆盖 xmlschema 方法而不是 to_s

class DateTime
  def xmlschema
    strftime("%Y-%m-%d %H:%M:%S")
  end
end

但正如我在评论中所说,您正在破坏 XLM 标准,并且连接到您的应用程序不会期望这种日期时间格式。

关于ruby-on-rails - 如何使用 Rails3 更改 xml 响应中的日期时间?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5368984/

相关文章:

ruby-on-rails - 如果你使用Google Checkout,你还需要在Rails中使用ActiveMerchant/Spree/some payment gateway吗?

ruby-on-rails - Rails ActionController::BadRequest 在生产服务器上导致 500 服务器错误

mysql - POST args 到方法 rails

mysql - 将 mysql 日期时间字段与 php 日期(Ymd)进行比较

sql-server - 将字符串转换为 Datetime2

ruby-on-rails - Rspec stub 不起作用

mysql - 你如何在 (?) 调用中执行 SQL 查找?

mysql - MySQL日期时间自动发送邮件

javascript - 无法从 jquery 中的值字段传递日期时间

javascript - 从没有时区的日期获取 ISO 字符串