只要我留在主页上,一切看起来就像昨天一样.但是当我尝试访问组列表时,我收到以下错误:
Routing ErrorYou have a nil object when you dIDn't expect it!You might have expected an instance of Array.The error occurred while evaluating nil.map
页面上没有其他信息,因此我查看了Webrick控制台并看到以下内容:
ActionController::RoutingError (You have a nil object when you dIDn't expect it!You might have expected an instance of Array.The error occurred while evaluating nil.map):app/controllers/groups_controller.rb:1:in `<top (required)>'
像往常一样,我的控制器的第一行是:
class GroupsController < ApplicationController
我查看了其他动作,结果是一样的:意外的零对象.尝试对User执行任何 *** 作时发生同样的问题.
我怀疑这是一个数据库问题(因为它根本没有影响完全没有使用数据库的控制器),所以我去了rails控制台,看看我是否可以手动添加条目.我不能.
ruby-1.9.2-p180 > group = Group.new(some sql)NoMethodError: You have a nil object when you dIDn't expect it!You might have expected an instance of Array.The error occurred while evaluating nil.map from /home/lite/.rvm/gems/ruby-1.9.2-p180/gems/activerecord-3.1.0.rc4/lib/active_record/persistence.rb:320:in `attributes_from_column_deFinition' from /home/lite/.rvm/gems/ruby-1.9.2-p180/gems/activerecord-3.1.0.rc4/lib/active_record/locking/optimistic.rb:69:in `attributes_from_column_deFinition' from /home/lite/.rvm/gems/ruby-1.9.2-p180/gems/activerecord-3.1.0.rc4/lib/active_record/base.rb:1525:in `initialize' from (irb):1:in `new' from (irb):1 from /home/lite/.rvm/gems/ruby-1.9.2-p180/gems/railtIEs-3.1.0.rc4/lib/rails/commands/console.rb:45:in `start' from /home/lite/.rvm/gems/ruby-1.9.2-p180/gems/railtIEs-3.1.0.rc4/lib/rails/commands/console.rb:8:in `start' from /home/lite/.rvm/gems/ruby-1.9.2-p180/gems/railtIEs-3.1.0.rc4/lib/rails/commands.rb:40:in `<top (required)>' from script/rails:6:in `require' from script/rails:6:in `<main>'
我查看了最顶层的文件(persistence.rb)并搜索了第320行.
319: def attributes_from_column_deFinition320: Hash[self.class.columns.map do |column|321: [column.name,column.default]322: end]323: end
这个定义让我对可能发生的事情有了一些了解,所以我在控制台中再运行了一个命令(Group.inspect),并在以下行中出错:
attr_List = columns.map { |c| "#{c.name}: #{c.type}" } * ','
好像我无法访问我的表格列,但我不明白为什么.我使用相同的 *** 作系统和内核在同一台计算机上以同一用户身份登录.出于好奇,我创建了另一个应用程序,重启后它也无法正常工作.
我现在花了四个小时寻找答案,但我找不到任何相关的东西.可能导致此问题的原因以及如何解决此问题?
解决方法 我找到了有罪的一个:名为’automatic_foreign_key’的小宝石,我曾经自动检测外键.当我回滚它所做的更改,删除它并手动更改表时,我的应用程序再次运行.谢谢大家的帮助!
总结以上是内存溢出为你收集整理的ruby-on-rails – Rails 3.1.0.rc4 Postgres – 重启后无法读取或写入数据库全部内容,希望文章能够帮你解决ruby-on-rails – Rails 3.1.0.rc4 Postgres – 重启后无法读取或写入数据库所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)