我的Ruby应用程序在处理时显示月初(第1天):
start_month => Date.today.month
我想在月底结束,所以我把它改成了:
start_month => Date.today.end_of_month
但它显示了月初。你知道为什么吗?
根据评论,我改写如下,但它仍然无效。我相信我拼错了一些东西
<div class="field">
<%= f.label :delivered_at, "Estimated delivery" %><br />
<%= f.date_select(:delivered_at.end_of_month, :start_year => Date.today.year, :start_month => Date.today.end_of_month,:prompt => { :month => 'Choose month', :year => 'Choose year'}, :discard_day => true) %>
</div>
答案 0 :(得分:0)
考虑到您所显示的视图的代码,我猜测您的问题出在您的控制器代码中。如果您查看f.date_select
的{{3}},则丢弃该日会导致其默认为该月的第一天。除非您在控制器中使用delivered_at
执行某些操作,否则它将始终是该月的第一天,因此您需要在保存模型之前将其更改为delivered_at.end_of_month
。
答案 1 :(得分:0)
Date.today.to_date.end_of_month
输出:
Sat, 30 Nov 2013
和
Date.today.to_date.end_of_month.month
输出:
11