2016-09-12 9 views
0

月を含むドロップダウンリストがあります。 どのように最後の月をデフォルトとして表示できますか? 例:今月は9月ですが、8月のデフォルトを設定したいと思います。ドロップダウンリストに既定値として最後の月を表示します。

マイビュー:

ドロップダウンリスト

<% 
    @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> 

答えて

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は前月取得するために使用することができます。

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

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

Date.today.prev_month.strftime( '%B') ' –

+0

@BartekGładys正しい前の月は' @ months'コレクションのオプションにするべきです – dp7

+0

それはうまくいかなかった... 9月はデフォルトとして続行する。 –

0

変更

options_for_select(@months) 

これは、選択ボックスのデフォルトの選択を追加します。

+0

それは動作しませんでした... 9月はデフォルトとして続行します。 –

関連する問題