Я был счастливым пользователем Redmine около 6 месяцев. Мой план состоял в том, чтобы установить его и никогда ничего не обновлять, чтобы не иметь дело с зависимостями и прочим.
Я использую сервер 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, и это последнее, о чем я хотел узнать на данный момент. Как мне понять, что не так, чтобы я попытался исправить это?
Исправление безопасности хеш-карты в пакете ubuntu ruby привело к тому, что хеш-карты случайным образом имеют разный порядок ключей. Но в redmine 0.9.3, которая является версией пакета ubuntu redmine, settings.rb имеет аксессор value = atribute, который зависит от правильного порядка хеширования атрибутов (: сначала имя,: значение второе).
Вот описание ошибки и возможные исправления:
https://bugs.launchpad.net/ubuntu/+source/redmine/+bug/949011 http://www.redmine.org/projects/redmine/repository/revisions/8909/diff/trunk/app/models/setting.rb
Похоже, что я был не единственным.
К счастью - перезапуск (или перезагрузка) ТОЛЬКО Apache (в отличие от перезапуска компьютера) действительно помогает. Некоторым приходилось перезапускать Apache дважды. Журнал ошибок Apache тоже не помогает.
http://www.redmine.org/boards/2/topics/29317 http://www.redmine.org/boards/1/topics/29209