Проблемы с 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'
ошибка получить его для массива.
Я надеюсь, что это было по крайней мере несколько полезно!