您用于将数据从控制器传输到视图的方法是合适的。我的猜测是 Person.all 没有返回任何结果,这意味着您的数据库没有通过控制台填充。尝试通过 db 目录中的 seed.rb 添加数据,然后运行 rake db:seed。那应该为你做。此外,通常模型列表通过“索引”路径运行。我建议使用它而不是路线“列表”。
您还可以查看这篇文章以确保您正确使用控制台:
如何从 Rails 控制台添加数据到数据库
*****************编辑*******************
要使用 index 列出模型列表,请打开您的 routes.rb 文件并添加人员资源以生成人员模型的所有路线
resources :people
这将为您提供索引、显示、编辑、创建、更新和销毁路由(运行 rake 路由以查看所有路由的列表)。如果您不想要所有这些,您可以使用 only: 和 except: 和 resource 命令来限制创建的路由。例子
resources :people, only: index
然后,您需要更新控制器以匹配您要使用的每个路由。因此,您可以使用索引、显示、编辑、更新、创建和销毁来代替“列表”。
def index
@people = Person.all
end
是索引操作定义的示例。然后你只需要一个视图来匹配动作,比如 index.html.erb。如果您在数据库中有任何人,他们现在应该在索引操作期间位于 @people 变量中,您可以使用它来列出每个人。如果您想创建一些人来尝试一下,可以使用控制台,使用 routes.rb 中的资源命令创建的 show 操作,或使用 seed.rb 文件并运行 rake db:seed。