Мы сейчас находимся в процессе обновления нашей версии rails, и я столкнулся с какой-то странной ошибкой в одном из моих тегов date_select.
Вот виновник:
<%= date_select :consultant_assignment, :start_date, :order => [:day, :month, :year],
:start_year => 5.years.ago.year, :end_year => 5.years.from_now.year, :use_short_month => true %>
Это выдает ошибку вроде этого:
NoMethodError
в профилях # show
Отображение приложения /views / people / _upcoming_assignments.html.erb, где поднята строка # 46:
У вас есть нулевой объект, когда вы его не ожидали!Возможно, вы ожидали экземпляр Array.Произошла ошибка при оценке nil.size
Извлеченный источник (около строки # 46):
43: <label for="consultant_assignment_start_date"><%= _('Start') %>:</label>
44: <% debugger %>
45:
46: <%= date_select :consultant_assignment, :start_date, :order => [:day, :month, :year], :start_year => 5.years.ago.year, :end_year => 5.years.from_now.year, :use_short_month => true %>
47:
48:
49:
Я попытался отследить эту проблему, и кажется, что ошибка генерируется при установкев опции: month в массиве: order.Поэтому, когда я делаю: order => [: day,: year], страница загружается идеально.
Я искал точную проблему, но, будучи скорее разработчиком интерфейса, я не уверен, как действовать дальше.с этим.Это ошибка по моему коду?Или это устаревший метод?
Вот application trace
:
/opt/local/lib/ruby/gems/1.8/gems/actionpack-2.3.8/lib/action_view/helpers/date_helper.rb:746:in `_unmemoized_month_names'
/opt/local/lib/ruby/gems/1.8/gems/activesupport-2.3.8/lib/active_support/memoizable.rb:72:in `month_names'
/opt/local/lib/ruby/gems/1.8/gems/actionpack-2.3.8/lib/action_view/helpers/date_helper.rb:781:in `month_name'
/opt/local/lib/ruby/gems/1.8/gems/actionpack-2.3.8/lib/action_view/helpers/date_helper.rb:708:in `select_month'
/opt/local/lib/ruby/gems/1.8/gems/actionpack-2.3.8/lib/action_view/helpers/date_helper.rb:705:in `upto'
/opt/local/lib/ruby/gems/1.8/gems/actionpack-2.3.8/lib/action_view/helpers/date_helper.rb:705:in `select_month'
/opt/local/lib/ruby/gems/1.8/gems/actionpack-2.3.8/lib/action_view/helpers/date_helper.rb:898:in `send'
/opt/local/lib/ruby/gems/1.8/gems/actionpack-2.3.8/lib/action_view/helpers/date_helper.rb:898:in `build_selects_from_types'
/opt/local/lib/ruby/gems/1.8/gems/actionpack-2.3.8/lib/action_view/helpers/date_helper.rb:896:in `each'
/opt/local/lib/ruby/gems/1.8/gems/actionpack-2.3.8/lib/action_view/helpers/date_helper.rb:896:in `build_selects_from_types'
/opt/local/lib/ruby/gems/1.8/gems/actionpack-2.3.8/lib/action_view/helpers/date_helper.rb:646:in `select_date'
/opt/local/lib/ruby/gems/1.8/gems/actionpack-2.3.8/lib/action_view/helpers/date_helper.rb:920:in `to_date_select_tag_without_error_wrapping'
Я погуглил нематериальные названия месяцев, но нашел nada.
Ладно, я пытался убрать целую оговорку: заказ, чтобы заставить эту чертову штуку работать.На этот раз это не выдает ошибку, но тег не появляется!Я попытался проверить в irb, и, по-видимому, мой тег date_select не возвращает никаких выбранных тегов, а просто набор скрытых тегов!
Я попробовал это с примером rails по умолчанию:
date_select("post", "written_on")
irbвозвращает это:
=> "\ n \ n \ n"
, как вы можете видеть, нигде нет тега выбора.Я пробовал datetime_select и вижу там тег выбора.Так в чем же дело с датой выбора 2.3.8?