Проблемы с MySQL в Ruby on Rails для Sierra/El Capitan Mac

Обновлена ​​ОС до El Capitan, а затем до Sierra. Теперь при работе над старым проектом Ruby on Rails все внезапные рельсы не могут получить данные из соответствующих таблиц.

Я переустановил Homebrew, mysql, rails, ruby, и xcode обновляется с установленным CLI.

Я сделал резервную копию старой базы данных, которая работала раньше, и импортировал ее обратно в совершенно новую установку mysql. Rails правильно регистрируется в проекте (который раньше не делал), но после этого получение страниц индекса не удается с проблемой "переупорядочить" для класса nil.

Started GET "/admin/buildings" for 127.0.0.1 at 2016-11-20 08:36:21 -0500
Processing by Admin::BuildingsController#index as HTML
  AdminUser Load (0.3ms)  SELECT `admin_users`.* FROM `admin_users` WHERE `admin_users`.`id` = 2 LIMIT 1
  Rendered /Users/mh/.rbenv/versions/2.2.3/lib/ruby/gems/2.2.0/gems/activeadmin-0.6.2/app/views/active_admin/resource/index.html.arb (25.5ms)
Completed 500 Internal Server Error in 38.0ms

ActionView::Template::Error (undefined method `reorder' for nil:NilClass):
    1: insert_tag renderer_for(:index)

варочная версия Homebrew 1.1.1 Homebrew/homebrew-core (git revision 421e; last commit 2016-11-20)

версия ruby ​​(через rbenv)ruby 2.2.3p173 (2015-08-18 revision 51636) [x86_64-darwin15]

рельсы версия Rails 3.2.22.5

версия MySQL Server version: 5.7.16 Homebrew

Надеюсь, не дубликат (я искал), но извинения, если это так.

РЕДАКТИРОВАТЬ: отметил, что rbenv не установил ruby ​​и rails для последней для этой конкретной папки, хотя был использован rbenv global. обновление до последней версии и будет обновлено позже.

1 ответ

Я не уверен, как обновление операционной системы повлияет на это, но другие люди испытали undefined method 'reorder' ошибка при использовании гема ActiveAdmin. В частности, это происходит при передаче переменной экземпляра в контроллер, где переменная экземпляра с таким именем уже существует.

Например, вы можете определить фильтр в application_controller.rb, который выбирает все сообщения, сохраняет их в переменной с именем @posts и передает их на индексный маршрут в posts_controller. ActiveAdmin уже создал и заполнил такую ​​переменную, а переменные конфликтуют. В этом случае вы должны переименовать переменную экземпляра, которая объявлена ​​в фильтре.

Одна вещь, которую я заметил, является уникальной для вашей проблемы - это nil:NilClass. Большинство других людей, которые сталкиваются с undefined method 'reorder' ошибка получить его для массива.

Я надеюсь, что это было по крайней мере несколько полезно!

Другие вопросы по тегам