2016-11-20 93 views
0

已將操作系統更新到El Capitan,然後更新到Sierra。現在,當處理一箇舊的Ruby on Rails項目時,所有突然的rails都無法從相關表中獲取數據。Ruby on Rails Sierra/El Capitan Mac上的MySQL問題

我已經重新安裝了Homebrew,mysql,rails,ruby,並且xcode已經用CLI安裝了。

我備份了之前工作過的舊數據庫,並導入到全新安裝的mysql中。 Rails正確地登錄到項目中(之前沒有這樣做),但之後獲取索引頁失敗,對於nil類有'reorder'問題。

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)

紅寶石版本(通過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

但願不是重複(我有搜索器d),但是,如果是的話,表示歉意。

編輯:指出rbenv沒有設置紅寶石和鐵軌到最新的具體文件夾,雖然rbenv全球使用。更新到最新版本並稍後更新。

+0

更新到最新的Ruby(和Gemfile中的Rails)沒有幫助,並導致更多的問題。將Ruby回滾到2.2也沒有幫助,回滾到2.1.2和Rails 3.2,現在我可以看到索引頁。稍後將嘗試更新以調試問題。 – user6450370

回答

0

我不確定您的操作系統更新會如何影響此操作,但其他人在使用ActiveAdmin gem時遇到了undefined method 'reorder'錯誤。特別是,它似乎發生在將實例變量傳遞給其中已存在相同名稱的實例變量的控制器時。例如,您可以在application_controller.rb中定義一個過濾器來獲取所有帖子,將它們存儲在一個名爲@posts的變量中,並將它們傳遞給posts_controller中的索引路由。 ActiveAdmin已經創建並填充了這樣的變量,並且這些變量是衝突的。在這種情況下,您應該重命名在過濾器中聲明的實例變量。

我注意到的一件事是你的問題是獨一無二的:NilClass。大多數遇到undefined method 'reorder'錯誤的其他人都會爲數組獲取它。

我希望這至少有點幫助!

+0

我不明白nil:NilClass,數據在那裏,我可以在MySQL表中看到它......並且ActiveAdmin正確登錄到同一個數據庫,它只是獲取已損壞的數據。整個事情都在El Capitan和Sierra更新之前進行。 – user6450370