1

我收到一个语法错误,但我不确定在 Ruby 中完成同样事情的理想替代方案是什么:

ruby-1.9.2-p290 :019 > Dvd.find_each { |x|  x.save, puts x.length }
SyntaxError: (irb):19: syntax error, unexpected tIDENTIFIER, expecting keyword_do or '{' or '('
Dvd.find_each { |x|  x.save, puts x.length }

任何的想法?

4

2 回答 2

4

Dvd.find_each { |x| x.save; puts x.length }

试试分号;代替 ,

于 2012-09-26T22:39:20.460 回答
4

或者,只是为了好玩,使用我们在 Ruby 1.9 中添加的新 #tap 方法:

Dvd.find_each { |x| puts x.tap(&:save).length }
于 2012-09-26T22:48:04.623 回答