可能重复:
Ruby 块和未加括号的参数
我不确定我是否理解这个语法错误。我正在使用 Carrierwave 管理 Rails 应用程序中的一些文件上传,我似乎错误地将块传递给其中一种方法。
这是Carrierwave Docs中的示例:
version :thumb do
process :resize_to_fill => [200,200]
end
这是我所拥有的:
version :full { process(:resize_to_limit => [960, 960]) }
version :half { process(:resize_to_limit => [470, 470]) }
version :third { process(:resize_to_limit => [306, 306]) }
version :fourth { process(:resize_to_limit => [176, 176]) }
以上不起作用,我明白了syntax error, unexpected '}', expecting keyword_end
。有趣的是,以下工作完美:
version :full do process :resize_to_limit => [960, 960]; end
version :half do process :resize_to_limit => [470, 470]; end
version :third do process :resize_to_limit => [306, 306]; end
version :fourth do process :resize_to_limit => [176, 176]; end
所以,我的问题是,为什么do...end
在这种情况下我可以使用而不是大括号传递一个块?
谢谢!