読者です 読者をやめる 読者になる 読者になる

Tracからimportしたプロジェクトのissues listがこけた

redmine

importした後に更新したissueをlist表示させようとしたら、こんなエラーが

Processing IssuesController#index (for 203.141.159.113 at 2010-04-20 10:59:29) [GET]
  Parameters: {"project_id"=>"axyz-conductor", "action"=>"index", "controller"=>"issues"}
Rendering template within layouts/base
Rendering issues/index.rhtml

ActionView::TemplateError (undefined method `-' for nil:NilClass) on line #16 of app/views/issues/_list.rhtml:
13:     </tr></thead>
14:     <% previous_group = false %>
15:     <tbody>
16:     <% issue_list(issues) do |issue, level| -%>
17:   <% if @query.grouped? && (group = @query.group_by_column.value(issue)) != previous_group %>
18:     <% reset_cycle %>
19:     <tr class="group open">

    app/helpers/issues_helper.rb:28:in `issue_list'
    app/helpers/issues_helper.rb:23:in `each'
    app/helpers/issues_helper.rb:23:in `issue_list'
    app/views/issues/_list.rhtml:16:in `_run_rhtml_app47views47issues47_list46rhtml_locals_issues_list_object_query'
    app/views/issues/_list.rhtml:1:in `_run_rhtml_app47views47issues47_list46rhtml_locals_issues_list_object_query'
    app/views/issues/index.rhtml:62:in `_run_rhtml_app47views47issues47index46rhtml'
    app/controllers/issues_controller.rb:80:in `index'
    app/controllers/issues_controller.rb:79:in `index'
    thin (1.2.2) lib/thin/connection.rb:76:in `pre_process'
    thin (1.2.2) lib/thin/connection.rb:74:in `catch'
    thin (1.2.2) lib/thin/connection.rb:74:in `pre_process'
    thin (1.2.2) lib/thin/connection.rb:57:in `process'
    thin (1.2.2) lib/thin/connection.rb:42:in `receive_data'
    eventmachine (0.12.8) lib/eventmachine.rb:242:in `run_machine'
    eventmachine (0.12.8) lib/eventmachine.rb:242:in `run'
    thin (1.2.2) lib/thin/backends/base.rb:57:in `start'
    thin (1.2.2) lib/thin/server.rb:156:in `start'
    thin (1.2.2) lib/thin/controllers/controller.rb:80:in `start'
    thin (1.2.2) lib/thin/runner.rb:174:in `send'
    thin (1.2.2) lib/thin/runner.rb:174:in `run_command'
    thin (1.2.2) lib/thin/runner.rb:140:in `run!'
    thin (1.2.2) bin/thin:6
    /usr/local/bin/thin:19:in `load'
    /usr/local/bin/thin:19

見てみると、list表示対象のissueのなかにlft, rgtがnilのものが存在していた。この属性はどうもawesome_nested_setというプラグインで使用している模様。どんなものかは分からないけれどおそらく、nestしたsetを扱えるのであろう。

とりあえず、他のissueと同じ値(lft = 1, rgt = 2)をpsqlで直接変更して凌いだ。ちなみにAR経由でいくとRubyのコードで保護されているのでなかなか上手くいかない(#sendが失敗したのですぐ諦めた).