在下拉列表中将上个月显示为默认值

时间:2016-09-12 19:55:12

标签: ruby-on-rails

我有几个月的下拉列表。 如何将上个月显示为默认值? 示例:本月是9月,但我想将月份设为默认值。

我的观点:

下拉列表

<% 
    @date = Date.today
    @months = []
    (0..11).each do |m|
        @months << [@date.next_month(m).strftime("%B"), @date.next_month(m)]
    end
%>



<div class="col-md-8">

<%= f.select :datepay, options_for_select(@months), { :required => true, :onchange => "alert()" }  %>


</div>

2 个答案:

答案 0 :(得分:1)

目前,您的@months数组不包含上个月。

因此,请按照以下方式将上个月包含在您的收藏中:

@date = Date.today
  @months = []
  (-1..11).each do |m| #mark here I am starting the range from -1 i.e from August, 2016
    @months << [@date.next_month(m).strftime("%B"),@date.next_month(m)]
  end

就像您下个月使用next_month一样,类似prev_month也可用于上个月。

<%= f.select :datepay, options_for_select(@months, @date.prev_month), { :required => true, :onchange => "alert()" }  %>

答案 1 :(得分:0)

更改

options_for_select(@months)

options_for_select(@months, @date.prev_month(1))

这将为选择框添加默认选择。