ActionView中的Heroku未定义方法错误

时间:2013-02-05 21:29:58

标签: ruby-on-rails ruby-on-rails-3 heroku

Heroku日志显示以下错误:

ActionView::Template::Error (undefined method `accepted_answer_id' for #<Question:0x000000052fd1e0>)

作为背景,我有一个模型Questionhas_many答案。 Question也有一列accepted_answer_id

未定义的方法错误是指_question.html.erb中的一行,用于在不同的阴影背景中自定义答案计数的显示

  <% if question.answers.count > 0 %> 

    <% if question.accepted_answer_id %>
        <div class="pickedanswer">
          <h4><%= question.answers.count %></h4>
        </div>
    <% else %>
        <div class="numanswer">
          <h4><%= question.answers.count %></h4>
        </div>
    <% end %>

  <% else %>

      <div class="noanswer">
        <h4><%= question.answers.count%></h4>
      </div>

  <% end %>

我认为由于最初question.accepted_answer_idnil这一事实可能会引发错误..但考虑到我构建逻辑的方式,我不知道为什么它不能简单地跟随(因为它在开发中已经成功完成了。)

感谢您的帮助。

1 个答案:

答案 0 :(得分:2)

我多次遇到过这个问题,这些是我采取的步骤:

  1. 首先确保您已在heroku上迁移数据库:

    heroku run rake db:migrate
    
  2. 确保数据库实际上是在heroku上迁移的:

    heroku pg:psql -a app_name
    \d table_name
    
  3. 最后在heroku上重启应用程序:

    heroku restart