0

私はウェブサイトを開発しています。すべてのユーザーからのすべての投稿を表示したい。しかし、次のエラーメッセージが表示されました。

nil:NilClass の undefined method `each' 抽出されたソース (行 #3 付近):

\app\view\static_pages\home.html.erb:

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

\app\controller\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 件のサンプル投稿があります...

4

2 に答える 2

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ですか?

于 2012-05-16T06:10:13.567 に答える
2

ホームビューで @microposts インスタンス変数を反復していますが、ホームアクションで @micropost を定義しています。これはあなたがしていることは間違っています。

ホーム ビューで @microposts インスタンス変数を定義して、ページ上のすべての投稿を取得する必要があります。

于 2012-05-16T06:17:58.640 に答える