将操作系统更新为 El Capitan,然后更新为 Sierra。现在,当处理旧的 Ruby on Rails 项目时,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)
brew 版本
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版本Rails 3.2.22.5
mysql版本Server version: 5.7.16 Homebrew
希望不是重复的(我已经搜索过),但如果是重复的,我们深表歉意。
编辑:注意到 rbenv 没有将 ruby 和rails 设置为该特定文件夹的最新版本,尽管使用了 rbenv 全局。更新到最新版本,稍后更新。
最佳答案
我不确定您的操作系统更新会如何影响此问题,但其他人在使用 ActiveAdmin gem 时遇到了 未定义方法“重新排序”
错误。特别是,当将实例变量传递到已经存在同名实例变量的 Controller 时,似乎会发生这种情况。
例如,您可以在 application_controller.rb 中定义一个过滤器,用于获取所有帖子,将它们存储在名为 @posts 的变量中,并将它们传递到 posts_controller 中的索引路由。 ActiveAdmin 已创建并填充了此类变量,但这些变量存在冲突。在这种情况下,您应该重命名过滤器中声明的实例变量。
我注意到您的问题所特有的一件事是 nil:NilClass。大多数遇到未定义方法“重新排序”
错误的人都将其视为数组。
我希望这至少有一些帮助!
关于mysql - Sierra/El Capitan Mac 上的 Ruby on Rails MySQL 问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40705095/