Time.zone.local out of range

6092 단어 RubyRails

Time.local out of range


당연한 일이지만 반했으니까 적어두자
다음 날짜 입력 형식을 만들었습니다. 입력이 임의라면 제목 오류가 발생합니다.
결론적으로 월과 일은 0이 없기 때문에 월이나 일을 입력하지 않으면 오류가 발생할 수 있다.

search.html.erb
<%= f.label '開始' %>
<div class='form-inline'>
    <%= f.datetime_select :start_at, {use_month_numbers: true, include_blank: true}, {class: "form-control date-select"} %>
</div>
<%= f.label '終了' %>
<div class='form-inline'>
    <%= f.datetime_select :end_at, {use_month_numbers: true, include_blank: true}, {class: "form-control date-select"} %>
</div>
controller.rb
event[:start_at] = Time.zone.local(params[:search]["start_at(1i)"].to_i, params[:search]["start_at(2i)"].to_i, params[:search]["start_at(3i)"].to_i, params[:search]["start_at(4i)"].to_i, params[:search]["start_at(5i)"].to_i)
event[:end_at] = Time.zone.local(params[:search]["end_at(1i)"].to_i, params[:search]["end_at(2i)"].to_i, params[:search]["end_at(3i)"].to_i, params[:search]["end_at(4i)"].to_i, params[:search]["end_at(5i)"].to_i)
>> Time.zone.local(2017, 5, 3, 1, 20)
=> Wed, 03 May 2017 01:20:00 UTC +00:00

>> Time.zone.local(0, 5, 3, 2, 1)
=> Wed, 03 May 0000 02:01:00 UTC +00:00

>> Time.zone.local(0, 5, 0, 0, 0)
ArgumentError: argument out of range

>> Time.zone.local(2017, 0, 0, 0, 0)
ArgumentError: argument out of range
기한도 안 됐는데 이렇게 시간낭비를... (맛있다)

좋은 웹페이지 즐겨찾기