コントローラーからビューにデータを転送するために使用している方法は適切です。私の推測では、 Person.all が結果を返していないということです。つまり、コンソールを介してデータベースにデータが入力されていません。dbディレクトリのseeds.rb経由でデータを追加してから、rake db:seedを実行してみてください。それはあなたのためにそれをするはずです。また、通常、モデルのリストは「index」ルートを介して実行されます。ルート「リスト」の代わりにそれを使用することをお勧めします。
この投稿をチェックして、コンソールを正しく使用していることを確認することもできます:
how to add data to database from rails console
*****************編集*******************
インデックスを使用してモデルのリストを表示するには、routes.rb ファイルを開き、 people リソースを追加して person モデルのすべてのルートを生成します。
resources :people
これにより、ルートのインデックス作成、表示、編集、作成、更新、および破棄が行われます (rake routes を実行して、すべてのルートのリストを表示します)。これらすべてを必要としない場合は、resource コマンドで only: および except: を使用して、作成されるルートを制限できます。例
resources :people, only: index
次に、使用する各ルートに一致するようにコントローラーを更新する必要があります。したがって、'list' の代わりに、index、show、edit、update、create、および destroy を使用できます。
def index
@people = Person.all
end
インデックス アクション定義の例です。次に必要なのは、index.html.erb のようなアクションに一致するビューだけです。データベースに人がいる場合は、インデックス アクション中に @people 変数に含まれている必要があり、それを使用して各人を一覧表示できます。何人かの人に試してもらいたい場合は、コンソールを使用するか、routes.rb で resources コマンドを使用して作成した show アクションを使用するか、seed.rb ファイルを使用して rake db:seed を実行します。