Ruby on rails 如何从rubyonrails'date\u select'formhelper中排除月份?
我想要一个Ruby on rails 如何从rubyonrails'date\u select'formhelper中排除月份?,ruby-on-rails,date,helper,Ruby On Rails,Date,Helper,我想要一个日期\u选择,从现在起仅几个月就可以给我发短信 所以如果我们在三月,它只会显示: - March - April - May - June - July - August - September - October - November - December 现在我有这个: f.date_select :meeting_date,{:order=>[:month,:day]} 是否有类似于此助手的start\u month属性?因此,我可以使用以下内容: f.date_sel
日期\u选择,从现在起仅几个月就可以给我发短信
所以如果我们在三月,它只会显示:
- March
- April
- May
- June
- July
- August
- September
- October
- November
- December
现在我有这个:
f.date_select :meeting_date,{:order=>[:month,:day]}
是否有类似于此助手的start\u month
属性?因此,我可以使用以下内容:
f.date_select :meeting_date,{:start_month=>Time.now.month,:order=>[:month,:day]}
但它将插入空白项,因为:use\u month\u names
要求数组包含12项。要删除它们,您应该编写自己的date\u选择
helper如果您只需要几个月,那么您可以制作自定义的helper
在config/initializers/constants.rb
MONTHS = ['Jan', 'Feb', 'Marh'] #etc...
如果您有一个带有|f |
的from,您可以有一个月生成器:
def month_select_builder(f, attr)
f.select attr.symbolize, options_for_select(MONTHS)
end
如果您只有一个没有生成器的form_标记,则:
def month_select(attr)
select_tag attr.symbolize, options_for_select(MONTHS)
end
attr
是型号上的字段名,即:meeting_date
。把它当作字符串传递就行了 这似乎是个坏主意。除夕夜你会有什么有意义的选择?这会节省一年的时间。现在。一年。我想做的唯一一件事就是阻止客户在过去的几个月里安排约会。你有什么特别的原因要选择一个日期吗?如果您只选择月份,为什么不简单地使用普通选择?我希望这是免维护的,并且我希望它自动排除过去的月份。是否有任何助手o我应该手动进行编码?我建议手动进行@Sam有最接近的解决方案。因为你并没有真正使用一个日期本身,所以你可以更容易地自己编写代码,这样你就可以对它进行适当的控制。我建议你考虑一下你的选择在12月份会是什么样子。这一个很好,但它不是像select\u month
helper?为什么我想要空白的项目
def month_select(attr)
select_tag attr.symbolize, options_for_select(MONTHS)
end