我使用week_field助手在表單中生成一週選擇器。當我選擇一個星期並提交時,我的控制器獲得正確的序列化的一週(例如'2014-W03'),我可以將它變成一個日期對象。這一切都有效,但是當日期再次序列化時,它總是遞減1(例如,它將是'2014-W02')。我看了看source code for the week_field helper,並將其序列化爲week_field在序列化和反序列化後給出錯誤的一週
def format_date(value)
value.try(:strftime, "%Y-W%W")
end
但這似乎並沒有被編碼時的日期被解析。此外,解析和序列化然後日期yeilded這個靠不住的結果:
irb > Date.parse('2014-W03').strftime('%Y-W%W')
=> "2014-W02"
任何想法,這裏發生了什麼或如何,我可以在某種程度上是有道理的做到這一點?如果有更乾淨的路線,我討厭在週數上多加一個+1或更改week_field
format_date
定義。
我提交了一份公關的軌道來解決這個:https://github.com/rails/rails/pull/22190 – 2015-11-05 10:34:38