在主页上显示数据库中的所有帖子

时间:2012-05-16 06:07:43

标签: ruby-on-rails

我正在开发一个网站。我想显示所有用户的所有帖子。但是我收到以下错误消息:

未定义的方法`每个'为nil:NilClass 提取的来源(第3行):

\应用\视图\ static_pages \ home.html.erb:

   <div class="span8">    
     <ul class="microposts">
       <% @microposts.each do |micropost| %>
         <li>
           micropost.content
         </li>

我已经定义了 \应用\控制器\ static_pages_controller.rb:

class StaticPagesController < ApplicationController

  def home
    if signed_in?
      @micropost  = current_user.microposts.build
      @feed_items = current_user.feed.paginate(page: params[:page])
    end
  end

  def index
    @microposts = Micropost.all
  end
end

缺少什么?我已经在数据库中有310个样本帖...

2 个答案:

答案 0 :(得分:3)

您想在哪个页面上展示帖子?如果是home,那么您应修改home操作以加载所有帖子:

def home
  if signed_in?
    @micropost  = current_user.microposts.build
    @feed_items = current_user.feed.paginate(page: params[:page])
  end

  @microposts = Micropost.all
end

也许是您希望在@feed_items页面上显示的home

答案 1 :(得分:2)

您正在主视图中迭代@microposts实例变量,但您已在主动作中定义了@micropost。你做错了。

您需要在主视图中定义@microposts实例变量,这样您才能获得页面上的所有帖子。