我在 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/