2012-03-08 102 views
3

一些输出一旦我做一个滑轨c和得到一些行形成数据库,像这样:如何抑制在Rails的控制台

users = User.find(:all,:conditions => ["some conds"]) 

那么用户已经说的20个结果

如果我那么做了

users.each do |u| 
    puts u.name if u.gender == 'male' 
end 

然后打印所有的男性名字后,控制台再次输出用户对象的所有内容。我不需要需要再看一遍。我怎样才能压制它?所有我感兴趣的是put的输出

回答

19

这就是控制台的工作原理。你输入表达式,它打印它的值。

users.each do |u| 
    puts u.name if u.gender == 'male' 
end 

此代码的值是users对象本身,它被正确打印。你用puts打印是一个副作用。

通过更改此表达式的返回值,仍然可以禁止打印users的全部内容。例如,像这样:

users.each do |u| 
    puts u.name if u.gender == 'male' 
end && false 
+0

谢谢塞尔吉奥! – bachposer 2012-03-08 20:12:58

+1

哇,好戏......谢谢塞尔吉奥,你救了我一天! – 2012-11-09 21:12:08