2016-11-20 5 views
0

OS가 El Capitan으로 변경된 후 Sierra로 업데이트되었습니다. 이제는 오래된 Ruby on Rails 프로젝트를 작업 할 때 모든 갑작스러운 레일이 관련 테이블에서 데이터를 가져올 수 없습니다.Ruby on Rails Sierra/El Capitan Mac에서 MySQL 문제가 발생했습니다.

Homebrew, mysql, rails, ruby를 재설치했으며 CLI가 설치된 상태에서 xcode가 업데이트되었습니다.

이전에 작동했던 이전 데이터베이스를 백업하고 새로운 mysql 설치로 다시 가져 왔습니다. 레일즈는 프로젝트에 올바르게 로그인하지만 이전에는 그렇게하지 않았지만 인덱스 페이지를 얻지 못하면 nil 클래스에 대해 '재정렬'문제가 발생합니다. ruby 2.2.3p173 (2015-08-18 revision 51636) [x86_64-darwin15]

(rbenv를 통해)

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) 

BREW 버전 Homebrew 1.1.1 Homebrew/homebrew-core (git revision 421e; last commit 2016-11-20)

루비 버전이 희망 버전 Rails 3.2.22.5

MySQL 버전 Server version: 5.7.16 Homebrew

레일하지 중복 (나는 searche이 d). 그러나 그것이 사과라면.

편집 : rbenv는 rbenv global이 사용되었지만 rbenv가 특정 폴더에 대해 루비와 레일을 최신으로 설정하지 않았 음을 유의하십시오. 최신 버전으로 업데이트하고 나중에 업데이트 할 예정입니다.

+0

최신 Ruby (및 Gemfile의 Rails) 업데이트가 도움이되지 않으며 더 많은 문제가 발생했습니다. Ruby를 2.2로 다시 돌리는 것도 도움이되지 않았습니다. 2.1.2와 Rails 3.2로 돌아 왔고 이제 인덱스 페이지를 볼 수 있습니다. 나중에 문제를 디버깅하기 위해 업데이트를 시도합니다. – user6450370

답변

0

운영체제 업데이트가 어떻게 영향을 미치는지 모르겠지만 다른 사용자는 ActiveAdmin gem을 사용하는 동안 undefined method 'reorder' 오류가 발생했습니다. 특히, 동일한 이름의 인스턴스 변수가 이미 존재하는 컨트롤러에 인스턴스 변수를 전달할 때 발생하는 것으로 보입니다.

예를 들어, 모든 게시물을 가져 와서 @posts라는 변수에 저장 한 후 posts_controller의 색인 경로로 전달하는 필터를 application_controller.rb에 정의 할 수 있습니다. ActiveAdmin은 이미 그러한 변수를 생성하고 채웠으며 변수가 충돌합니다. 이 시나리오에서는 필터에 선언 된 인스턴스 변수의 이름을 바꿔야합니다.

당신의 문제에 고유 한 것이 하나 있다는 사실은 Nil : NilClass입니다. undefined method 'reorder' 오류가 발생하는 대부분의 사람들은 그것을 Array로 가져옵니다.

나는 이것이 적어도 다소 도움이 되었길 바래!

+0

NilClass도 이해하지 못했습니다. 데이터가 있습니다. MySQL 테이블에서 볼 수 있습니다 ... ActiveAdmin이 동일한 데이터베이스에 올바르게 로그인하면 데이터가 손상됩니다. 엘 캐피 탄 (El Capitan)과 시에라 (Sierra)가 업데이트되기 전에 모든 것이 작동했습니다. – user6450370