我正在开发一个网站。我想显示所有用户的所有帖子。但是我收到以下错误消息:
未定义的方法`每个'为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个样本帖...
答案 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实例变量,这样您才能获得页面上的所有帖子。