bac*_*ser 3 ruby console ruby-on-rails
一旦我做了一个rails c并从db中得到一些行,就像这样:
users = User.find(:all,:conditions => ["some conds"])
Run Code Online (Sandbox Code Playgroud)
然后用户说了20个结果
如果我再做一个
users.each do |u|
puts u.name if u.gender == 'male'
end
Run Code Online (Sandbox Code Playgroud)
然后在打印完所有男性名字之后,控制台再次输出用户对象的所有内容.我不需要再看一遍.我怎么能抑制它?我感兴趣的只是看跌期权的输出
Ser*_*sev 19
这就是控制台的工作原理.输入表达式,它会打印其值.
users.each do |u|
puts u.name if u.gender == 'male'
end
Run Code Online (Sandbox Code Playgroud)
此代码的值是users对象本身,并且正确打印.你打印的puts是副作用.
您仍然可以users通过更改此表达式的返回值来禁止打印完整内容.例如,像这样:
users.each do |u|
puts u.name if u.gender == 'male'
end && false
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2088 次 |
| 最近记录: |