2

以下代码:

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

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

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

4

3 回答 3

8

我无法复制此行为,但如果您在控制台中查看此行为,您可能会误认为#each返回 self(以及 self,一个大的 User 对象数组,然后检查)对于每个打印所有字段的调用。您能否改为运行User.all.each {|u| puts u.id}; nil让控制台nil在每个之后返回并查看行为是否仍然存在?

于 2013-03-29T19:09:10.477 回答
0

如果你运行puts u,它会给出一个散列还是一个对象?如果是散列,则使用puts u[:id]orputs u['id']而不是puts u.id.

于 2013-03-29T19:06:41.960 回答
0

If you are running this irb or rails console, it should print out just the IDs but then the return from your code is the set of users which the console will then print out. Scroll up and you will see the output you expect followed by the print out of all the user objects with full details.

于 2013-03-29T19:43:21.060 回答