我不知道我理解這個語法錯誤。我正在使用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/)。 –