2016-09-22 2 views
0

Я полностью потерялся на этом. Я использую ruby ​​2.2.4 и обновляю приложение с рельсов 4.1.0 до 4.2. Приложение работает нормально. Я изменил свое Gemfile использовать:Rails 4.2 Time_zone_conversion.rb Ошибка. Как это исправить?

gem 'rails', '~>4.2' 

Тогда пробежала спецификации тестов и приложение взрывали с этой ошибкой:

usr/local/rvm/rubies/ruby-2.2.4/bin/ruby -I/path-to-my-app/vendor/bundle/ruby/2.2.0/gems/rspec-core-3.5.0/lib:/path-to-my-app/vendor/bundle/ruby/2.2.0/gems/rspec-support-3.5.0/lib /path-to-my-app/vendor/bundle/ruby/2.2.0/gems/rspec-core-3.5.0/exe/rspec --pattern spec/\*\*\{,/\*/\*\*\}/\*_spec.rb 

Coverage report generated for RSpec to /path-to-my-app/coverage. 22/1206 LOC (1.82%) covered. 

/path-to-my-app/vendor/bundle/ruby/2.2.0/gems/activerecord-4.2.7.1/lib/active_record/attribute_methods/time_zone_conversion.rb:64:in `create_time_zone_conversion_attribute?': undefined method `type' for "NUMBER(38)":String (NoMethodError) 
from /path-to-my-app/vendor/bundle/ruby/2.2.0/gems/activerecord-4.2.7.1/lib/active_record/attribute_methods/time_zone_conversion.rb:53:in `block (2 levels) in inherited' 

При попытке загрузить приложение в браузере, я получаю ошибку:

undefined method 'type' for "NUMBER(38)":String 

Я сделал это на этом и нашел одно сообщение. Он был здесь, в StackOverflow: NoMethodError: Undefined method 'type' for nil:NilClass in Rails, что привело меня к: https://gist.github.com/alsemyonov/88826/revisions

Я испробовал исправление, размещенное в приложении github, но я все равно получаю ту же ошибку.

Упоминание «time_zone_conversion.rb» в ошибке и что-то, что я прочитал, заставило меня подумать, что это было: связанное с датой. У меня есть один метод в нескольких моделях, которые работают в поле даты «updated_at». Не уверен, связано это или нет.

def updated_at_formatted 
    self.updated_at.strftime("%m/%d/%Y") 
end 

Я также использую драгоценный камень 'american_date'.

Любые идеи о том, что вызывает это и как его исправить, были бы весьма признательны.

Спасибо,

ответ

0

Нашел: Oracle усовершенствованный адаптер версии 1.6 поддерживает только Rails 4.2 и не поддерживает Rails 4.1 или более низкую версию Rails. При использовании Ruby On Rails версии 4.2 затем в Gemfile включают

gem 'activerecord-oracle_enhanced-adapter', '~> 1.6.0' 

сослуживцу, и я прошел через StackTrace на ошибку. Он чувствовал, что линия:

undefined method 'type' for "NUMBER(38)":String 

был каким-то образом связан с проблемой базы данных, которая для этого приложения является Oracle. Поиск по вопросам, связанным с обновлением Rails 4.2, и вышеописанным оракулом, привели нас к вышеуказанному ответу.

Смежные вопросы