Rails - 下拉(选择)月/年

时间:2012-10-21 20:30:57

标签: ruby-on-rails html-select

  1. 如何在rails中创建一个包含所有月份的下拉列表?
  2. 如何创建一个下拉列表,其中包含从当前年份和8年前(2012年,2013年... 2020年)开始的年份列表? 感谢。

5 个答案:

答案 0 :(得分:18)

这几个月:

<%= select_month(Date.today) %>

Date.today参数会将其默认为当前月份 - 使用select_month(1)默认为1月)

多年来:

<%= select_year(Date.today, :start_year => Date.today.year, :end_year => 8.years.from_now.years) %>

答案 1 :(得分:7)

<%= f.select :month, 1..12 %>

<%= f.select :year, Date.today.year.. 8.years.from_now.year %>

答案 2 :(得分:3)

@alex答案的一小部分,

默认情况下,如果你这样做

  

select_month(Date.today,field_name:&#39; start&#39;)

它将生成名为“date [start]”的select标签。如果您希望它不是date [],请添加:prefix选项,如下所示:

  

select_month(Date.today,field_name:&#39; start&#39 ;, prefix:&#39; timer&#39;)

这将呈现名为“timer [start]”的选择标记。

答案 3 :(得分:1)

如果希望下拉列表显示实际的月份名称而不是月份数字,请添加到@Diego:

<%= f.select :end_date, Date::MONTHNAMES[1..12] %>

然后是一年:

<%= f.select :end_date, Date.today.year.. 8.years.from_now.year %>

答案 4 :(得分:0)

这是选定月份和年份的组合

<%= f.month_field(Date.today) :month %>

阅读更多:https://guides.rubyonrails.org/form_helpers.html