以下代码:
User.all.each {|u| puts u.id}
打印出所有记录的所有字段。
如何将其更改为仅打印id
字段?
答案 0 :(得分:8)
我无法复制这种行为但是如果你在控制台中看到这个,你可能会错误地认为#each
返回self(和self,一大堆User对象,然后检查)打电话给每个打印所有领域。您是否可以运行User.all.each {|u| puts u.id}; nil
让控制台在每个控制台之后返回nil
并查看该行为是否仍然存在?
答案 1 :(得分:0)
如果您运行puts u
,它是否会提供哈希值或对象?如果是哈希,请使用puts u[:id]
或puts u['id']
而不是puts u.id
。
答案 2 :(得分:0)
如果您正在运行此irb或rails控制台,它应该只打印ID,但是代码的返回是控制台随后将打印出来的用户集。向上滚动,您将看到所需的输出,然后打印出所有用户对象,并提供完整的详细信息。