我已经使用 redmine 六个月了,非常开心。我的计划是设置好它,然后永远不更新任何东西,这样就不用处理依赖关系之类的问题了。
我正在使用 Ubuntu 服务器 10.04 (Apache/Passenger),并禁用了所有类型的更新。
今天早上我开始在浏览器中出现内部错误。
日志文件内容如下:
Processing WelcomeController#index (for 192.168.1.23 at 2012-03-05 10:44:12) [GET]
Parameters: {"action"=>"index", "controller"=>"welcome"}
NoMethodError (undefined method `[]' for nil:NilClass):
/app/models/setting.rb:100:in `value='
/vendor/rails/activerecord/lib/active_record/base.rb:2589:in `send'
/vendor/rails/activerecord/lib/active_record/base.rb:2589:in `attributes='
/vendor/rails/activerecord/lib/active_record/base.rb:2585:in `each'
/vendor/rails/activerecord/lib/active_record/base.rb:2585:in `attributes='
/vendor/rails/activerecord/lib/active_record/base.rb:2285:in `initialize'
...
我是 Ruby/Rails 的新手,这是我目前最不想学习的东西。我如何才能知道哪里出了问题,以便尝试修复它?
答案1
ubuntu ruby 软件包中的哈希映射安全修复导致哈希映射的键顺序随机不同。但在 redmine 0.9.3(ubuntu redmine 软件包版本)中,settings.rb 具有 value= 属性访问器,它依赖于正确的属性哈希顺序(:name 第一,:value 第二)。
以下是该错误的描述和可能的修复:
https://bugs.launchpad.net/ubuntu/+source/redmine/+bug/949011 http://www.redmine.org/projects/redmine/repository/revisions/8909/diff/trunk/app/models/setting.rb
答案2
看来我并不是唯一一个这样的人。
幸运的是 - 仅重新启动(或重新加载)Apache(而不是重新启动机器)确实有帮助。有些人不得不重新启动 Apache 两次。Apache 错误日志也无济于事。
http://www.redmine.org/boards/2/topics/29317 http://www.redmine.org/boards/1/topics/29209