我有几个月的下拉列表。 如何将上个月显示为默认值? 示例:本月是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>
答案 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))
这将为选择框添加默认选择。