2016-12-28 13 views
0

私のビューファイルは以下の通りです。date_select in rails、選択した値を取得するにはどうすればよいですか?

<div class="field"> 
    <%= f.label :deadline , class:"form-label" %><br /> 
    <%= f.date_select(:deadline , use_month_numbers: true , start_year: (Time.now.year) , end_year: (Time.now.year+1) , start_month: (Time.now.month) , end_month: (12) , start_day: (Time.now.day) , end_day: (days_in_month(Time.now.month)) , default: Date.new(Time.now.year , Time.now.month , Time.now.day) , date_separator: '/') %> 
</div> 

days_in_month(Time.now.month)はヘルパーメソッドです。

def days_in_month(month, year = Time.now.year) 
    common_year_days_in_month = [nil, 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31] 
    return 29 if month == 2 && Date.gregorian_leap?(year) 
    common_year_days_in_month[month] 
end 

この場合、ユーザーが '月'を選択すると、 '日'は変更されません。 たとえば、2016-12-28の場合、ページにはデフォルトで2016/12/28が表示され、12月には31日があるためend_dayは31です。しかし、ユーザーは11ヶ月を選択しますが、12月は31日を持つため、end_dayは31です。その場合、私はend_dayに30を表示したい。私を助けてください...

+0

クライアントで実行したい場合は、javacript – Iceman

+0

を使用する必要があります。ありがとうございます! –

答えて

0

これはクライアント側の問題です、あなたはjavascriptを使用して処理する必要があります。これはあなたを助けるかもしれません:Form days value change with respect to the month

+0

私は見る!あなたの助言をありがとう! –

関連する問題