Ruby on rails Heroku和Mongohq上的Rails错误

Ruby on rails Heroku和Mongohq上的Rails错误,ruby-on-rails,mongodb,heroku,mongohq,Ruby On Rails,Mongodb,Heroku,Mongohq,我从heroku日志中得到这个错误。我的应用程序正在使用mongoid和MongoHQ数据库。它在我本地的机器上运行良好 2013-05-29T12:08:04.219051+00:00 app[web.1]: Rendered posts/index.html.erb within layouts/application (7.5ms) 2013-05-29T12:08:04.219266+00:00 app[web.1]: Completed 500 Internal Server Er

我从heroku日志中得到这个错误。我的应用程序正在使用mongoid和MongoHQ数据库。它在我本地的机器上运行良好

2013-05-29T12:08:04.219051+00:00 app[web.1]:   Rendered posts/index.html.erb within layouts/application (7.5ms)
2013-05-29T12:08:04.219266+00:00 app[web.1]: Completed 500 Internal Server Error in 8ms
2013-05-29T12:08:04.221331+00:00 app[web.1]: 
2013-05-29T12:08:04.221331+00:00 app[web.1]: ActionView::Template::Error (undefined method `[]' for nil:NilClass):
2013-05-29T12:08:04.221331+00:00 app[web.1]:     12:     <th class="span1"></th>
2013-05-29T12:08:04.221331+00:00 app[web.1]:     13:   </tr>
2013-05-29T12:08:04.221331+00:00 app[web.1]:     14: 
2013-05-29T12:08:04.221331+00:00 app[web.1]:     15: <% @posts.each do |post| %>
2013-05-29T12:08:04.221331+00:00 app[web.1]:     16:   <tr class="row-fluid">
2013-05-29T12:08:04.221331+00:00 app[web.1]:     17:     <td class="span2"><%= post.title %></td>
2013-05-29T12:08:04.221331+00:00 app[web.1]:     18:     <td class="span1"><%= post.post_date %></td>
2013-05-29T12:08:04.221331+00:00 app[web.1]:   app/views/posts/index.html.erb:15:in `_app_views_posts_index_html_erb___2127098936622691725_37166920'
2013-05-29T12:08:04.221586+00:00 app[web.1]:   app/controllers/posts_controller.rb:12:in `index'

如果@posts变量为nil,请选中它。我该怎么做?我已经访问了heroku rails控制台,并执行了
Post.all.count
Post.all.entries
操作,这两个操作都为nil:NilClass提供了
未定义的方法“[]”?您在posts表中没有记录,因此它给出了这个errorPost.all给出了一个Mongoid条件,您必须调用Post.all.entries来给出所有条目。它应该为空,因为这是第一次运行应用程序。如果我在本地运行我的应用程序,我不必对mongodb做任何事情(没有RakeDB:migrate之类的)。我只需要运行它,然后进入应用程序并创建一个条目。没有这个问题,好的。查看for循环而不是each是否工作,并从posts控制器的index方法粘贴代码
  def index
    t = params[:t].to_i
    if t
      @posts = Post.where(:created_at.gt => t).asc(:created_at)
    else
      @posts = Post.all
    end

    respond_to do |format|
      format.html # index.html.erb
      format.json { render json: @posts }
    end
  end