我正试图在date_select中的天和月添加前导零,对于我在文档中看到的所有内容,您只能指定:use_month_numbers
和:use_short_month
而不是CCD_ 3。
查看rails代码,我发现date_helper.rb:中的以下代码
文件:actionpack/lib/action_view/helpers/date_helper.rb
def select_day
if @options[:use_hidden] || @options[:discard_day]
build_hidden(:day, day)
else
build_options_and_select(:day, day, :start => 1, :end => 31, :leading_zeros => false)
end
end
在DateTimeSelector下的第856行中,有一行是:
leading_zeros = options.delete(:leading_zeros)
因此,我得到的印象是,即使你成功地覆盖了第一个方法,并用leading_zeros => true
调用了DateTimeSelector
,它也会在那里结束你的聚会,所以不可能这样做。
现在,我的ruby fu/rrails fu并不是那么传奇,所以我想知道——我可以覆盖rails应用程序中的类,只重新实现我想要的方法来支持leading_zeros吗?或者,实现这一点的最佳方法是什么?
编辑:如果有人问为什么他甚至需要前导零,好吧,这不是一个破坏交易的因素,也没有的必要,但我希望能够做到这一点……只是为了整个应用程序的一致性。在应用程序和报告中,日期以dd/mm/yy格式显示,但在创建记录时,用户会发现不同的格式。这并不重要,只是一个设计选择。
无论如何…我最终通过在rails应用程序中重载该方法解决了这个问题(作为测试,而不是在生产中使用它(。我想我可以结束这一点,因为"rails不支持日期中的前导零"。
非常简单,只需使用以下格式:"%-d%-m">