我不知道我理解这个语法错误。我正在使用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
但不是大括号在这种情况下块?
谢谢!
这是[代码块传递给'each'与括号工作的重复,但不能以'do' (红宝石)](http://StackOverflow.Com/q/6718340/),[块定义 - 大括号和'''''''end'之间的区别?](http://StackOverflow.Com/q (http://stackOverflow.Com/q/3680097/),[使用'do'块vs括号'{}'](http:///StackOverflow.Com/q/2122380/),[Ruby中这些块编码风格的区别或价值是什么?](http://StackOverflow.Com/q/533008/)和[Ruby块和未加密的参数](http ://StackOverflow.Com/q/420147/)。 –