Как исправить в ruby ​​на рельсах ошибку неопределенного метода alias_method_chain? - PullRequest
1 голос
/ 31 марта 2019

Я только что клонировал репозиторий github https://github.com/maxitron93/p2pcollective.com,, когда я изучал это удивительное приложение p2p-кредитования, я обнаружил ошибку

NoMethodError: неопределенный метод `alias_method_chain 'для ActiveRecord :: ConnectionAdapters:: PostgreSQLColumn: Class

как при переносе базы данных, так и при взломе сервера.Я использую cloud9 ide, чтобы избежать моей компьютерной среды.

Проходя через пару сообщений о решениях, я обновил свой магазин драгоценных камней, добавив устройство и erubis, но все еще вернулся к этой ошибке 'alias_method_chain'.

Вот фрагмент моих журналов:

rake db:migrate
rake aborted!
NoMethodError: undefined method `alias_method_chain' for ActiveRecord::ConnectionAdapters::PostgreSQLColumn:Class
Did you mean?  alias_method
/usr/local/rvm/gems/ruby-2.3.4/gems/activerecord-postgres-hstore-0.7.8/lib/activerecord-postgres-hstore/activerecord.rb:80:in `<class:PostgreSQLColumn>'
/usr/local/rvm/gems/ruby-2.3.4/gems/activerecord-postgres-hstore-0.7.8/lib/activerecord-postgres-hstore/activerecord.rb:74:in `<module:ConnectionAdapters>'
/usr/local/rvm/gems/ruby-2.3.4/gems/activerecord-postgres-hstore-0.7.8/lib/activerecord-postgres-hstore/activerecord.rb:70:in `<module:ActiveRecord>'
/usr/local/rvm/gems/ruby-2.3.4/gems/activerecord-postgres-hstore-0.7.8/lib/activerecord-postgres-hstore/activerecord.rb:2:in `<top (required)>'
/usr/local/rvm/gems/ruby-2.3.4/gems/activesupport-5.1.6/lib/active_support/dependencies.rb:292:in `require'
/usr/local/rvm/gems/ruby-2.3.4/gems/activesupport-5.1.6/lib/active_support/dependencies.rb:292:in `block in require'
/usr/local/rvm/gems/ruby-2.3.4/gems/activesupport-5.1.6/lib/active_support/dependencies.rb:256:in `block in load_dependency'
/usr/local/rvm/gems/ruby-2.3.4/gems/activesupport-5.1.6/lib/active_support/dependencies.rb:662:in `new_constants_in'
/usr/local/rvm/gems/ruby-2.3.4/gems/activesupport-5.1.6/lib/active_support/dependencies.rb:256:in `load_dependency'
/usr/local/rvm/gems/ruby-2.3.4/gems/activesupport-5.1.6/lib/active_support/dependencies.rb:292:in `require'
/usr/local/rvm/gems/ruby-2.3.4/gems/activerecord-postgres-hstore-0.7.8/lib/activerecord-postgres-hstore/railties.rb:18:in `block (2 levels) in <class:Hstore>'
/usr/local/rvm/gems/ruby-2.3.4/gems/activesupport-5.1.6/lib/active_support/lazy_load_hooks.rb:69:in `instance_eval'
/usr/local/rvm/gems/ruby-2.3.4/gems/activesupport-5.1.6/lib/active_support/lazy_load_hooks.rb:69:in `block in execute_hook'
/usr/local/rvm/gems/ruby-2.3.4/gems/activesupport-5.1.6/lib/active_support/lazy_load_hooks.rb:60:in `with_execution_control'

Я ожидаю, что мой сервер rails будет работать без сбоев.

1 Ответ

1 голос
/ 31 марта 2019

alias_method_chain устарел и был удален в Rails 5, но существовал до этого. Похоже, что установленная зависимость (возможно, pg) несовместима. Возможно, вам удастся решить проблему с помощью bundle update pg, а если нет, то более широкое значение bundle update поможет.

РЕДАКТИРОВАТЬ:

Это то, что я получаю за интернет перед кофе. Ответственный за драгоценный камень находится в вашей трассировке стека: activerecord-postgres-hstore, чего нет в проекте, с которым вы связаны, что предполагает внесение других изменений. Вам не нужен этот драгоценный камень для Rails 4+. Подробнее здесь

...