【发布时间】:2014-12-31 15:51:10
【问题描述】:
我正在使用 week_field 帮助器在表单中生成星期选择器。当我选择一周并提交时,我的控制器会获得正确的序列化周(例如“2014-W03”),我可以将其转换为日期对象。一切正常,但是当日期再次序列化时,它总是减 1(例如它将是 '2014-W02')。我查看了source code for the week_field helper,它序列化为
def format_date(value)
value.try(:strftime, "%Y-W%W")
end
但这似乎不是解析日期时的编码。此外,解析然后序列化日期会产生这个不稳定的结果:
irb > Date.parse('2014-W03').strftime('%Y-W%W')
=> "2014-W02"
关于这里发生的事情或我如何以有意义的方式做到这一点的任何想法?如果有更清洁的路线,我不希望在周数上有额外的 +1 或更改 week_field format_date 定义。
【问题讨论】:
-
我向 Rails 提交了一个 PR 来解决这个问题:github.com/rails/rails/pull/22190
标签: ruby-on-rails ruby date serialization