单行块中具有多个表达式的语法错误

时间:2012-09-26 22:37:55

标签: ruby

我遇到语法错误,但我不确定在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 }

有什么想法吗?

2 个答案:

答案 0 :(得分:4)

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

尝试分号;而不是,

答案 1 :(得分:4)

或者,只是为了它的乐趣,使用添加到Ruby 1.9中的新#tap方法:

Dvd.find_each { |x| puts x.tap(&:save).length }