为什么User.all.each {| u | put u.id}打印所有字段?

时间:2013-03-29 19:03:00

标签: ruby-on-rails ruby

以下代码:

User.all.each {|u| puts u.id}

打印出所有记录的所有字段。

如何将其更改为仅打印id字段?

3 个答案:

答案 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,但是代码的返回是控制台随后将打印出来的用户集。向上滚动,您将看到所需的输出,然后打印出所有用户对象,并提供完整的详细信息。