重複の可能性:
Ruby ブロックと括弧で囲まれていない引数
この構文エラーがよくわかりません。Rails アプリでいくつかのファイルのアップロードを管理するために Carrierwave を使用していますが、メソッドの 1 つにブロックを間違って渡しているようです。
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
この例ではブレースを使用せずにブロックを渡すことができるのでしょうか?
ありがとう!