我在cloud9 IDE中运行rails.我在rails控制台中运行一个查询,它应该只给我创建的用户表中的所有用户.这有100条记录但是当我跑:
User.all
Run Code Online (Sandbox Code Playgroud)
我明白了
=> #<ActiveRecord::Relation [#<User id: 1, name: "Expedita Eaque", group: 1>, #<User id: 2, name: "Omnis Vel Tempora", group: 3>, #<User id: 3, name: "Incidunt", group: 1>, #<User id: 4, name: "Aliquam", group: 3>, #<User id: 5, name: "Dolorum", group: 1>, #<User id: 6, name: "At", group: 2>, #<User id: 7, name: "Dignissimos", group: 1>, #<User id: 8, name: "Eligendi Amet Ut", group: 1>, #<User id: 9, name: "Corporis Sint", group: 5>, #<User id: 10, name: "Quis Explicabo", group: 1>, ...]>
Run Code Online (Sandbox Code Playgroud)
这显然不是100条记录.我如何让rails控制台向我显示所有记录而不是截断,...]>?
User.all
返回一个ActiveRecord::Relation对象,而不是实际结果.
要查看所有记录,您可以尝试
User.all.to_a
此行为是有目的的,并且出于性能原因而创建.您可以在ORM中阅读有关延迟加载的更多信息,以便更好地理解原因.
基本上,您需要在AR关系对象上调用一个实际需要底层数据的方法,然后才会形成并执行查询.
编辑
控制台与您的应用程序的工作方式稍有不同,对于在控制台中返回的任何对象,它会进行检查并写出截断的输出.所以基本上,它确实强制查询自己运行,但显示有限的查看结果.要实际查看所有结果,请使用强制执行查询的方法并返回完整的结果集.
| 归档时间: |
|
| 查看次数: |
2009 次 |
| 最近记录: |