2012-03-08 101 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