Я настроил свое приложение точно в соответствии с Railscasts Time Zone Episode 1 , но когда я запускаю
<%= f.time_zone_select :time_zone, ActiveSupport::TimeZone.us_zones %>
Я получаю эту ошибку
NoMethodError в пользователях # new Отображение приложения / views / users / new.html.erb где строка № 27 поднята: У вас есть нулевой объект, когда вы этого не сделали ожидайте этого! Вы могли ожидать экземпляр массива. Произошла ошибка при оценке ноль. <=>
NoMethodError в пользователях # new
Отображение приложения / views / users / new.html.erb где строка № 27 поднята:
У вас есть нулевой объект, когда вы этого не сделали ожидайте этого! Вы могли ожидать экземпляр массива. Произошла ошибка при оценке ноль. <=>
С линией 27, являющейся вышеупомянутой линией. Я действительно застрял на этом ...
У меня была такая же проблема, из-за которой один из моих тестов на огурец провалился. Я обновился до Rails 2.3.9 (с 2.3.8) и все тесты пройдены. Удачи!
У меня точно такая же проблема. Похоже, это связано с Rails 2.3.8, потому что если я вернусь к своей предыдущей версии (2.3.4, установив это в /config/environment.rb), все будет работать нормально. Похоже на ошибку. Я проверяю, решит ли этот отчет об ошибке и полученный патч эту проблему: https://rails.lighthouseapp.com/projects/8994-ruby-on-rails/tickets/4942-activesupporttimezone-incorrectly-stores-bogus-values-in-zones_map#ticket-4942.
Да, это ошибка в 2.3.8, и она была исправлена в вышеупомянутом билете.
Вероятно, это было вызвано сохраненным часовым поясом в поле базы данных, которое не соответствует ниЗона, либо Rails или TZInfo знал о.В нашем случае это было вызвано случайным амперсандом HTML-кодирования, так что Pacific Time (US & Canada) стал Pacific Time (US & Canada).http://github.com/rails/rails/commit/78e4d88c7071c633ee1eb68f49b90719aa198eaa должен решить эту проблему, но вы можете вернуться и убедиться, что в вашей БД все еще нет плохих данных.
Pacific Time (US & Canada)
Pacific Time (US & Canada)
У вас есть поле базы данных для этой модели с именем time_zone? это вместо часового пояса?
Вам понадобится миграция с чем-то вроде:
add_column :users, :time_zone, :string
тогда
rake db:migrate