私のビューファイルは以下の通りです。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を表示したい。私を助けてください...
クライアントで実行したい場合は、javacript – Iceman
を使用する必要があります。ありがとうございます! –