我在cloud9 IDE中运行rails。我在rails控制台中运行一个查询,它应该只给我创建的用户表中的所有用户。这有100条记录但是当我跑:
User.all
我得到了
=> #<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>, ...]>
显然不是100条记录。如何让rails控制台向我显示所有记录而不是截断,...]&gt; ?
答案 0 :(得分:8)
User.all
返回ActiveRecord::Relation
对象,而不是实际结果。
要查看所有记录,您可以尝试
User.all.to_a
此行为是有目的的,并且出于性能原因而创建。您可以在ORM中阅读有关延迟加载的更多信息,以便更好地理解原因。
基本上,你需要在AR关系对象上调用一个实际需要底层数据的方法,然后才能形成并执行查询。
修改强>
控制台与您的应用程序的工作方式略有不同,对于在控制台中返回的任何对象,它会进行检查并写出截断的输出。所以基本上,它确实强制查询自己运行,但显示有限的查看结果。要实际查看所有结果,请使用强制执行查询的方法,并返回完整的结果集。