Rails4 + compass-rails を使っていて、Rails を 4.0.2 から 4.0.3 とかにバージョンアップすると以下の様なエラーが発生するようになることがあります。
エラーメッセージも「wrong number of arguments (2 for 1)」といった感じで身も蓋もない感じですね。
正直どうしたらええんじゃいってなります。
原因
落ち着いて、スタックトレースを見ると sprockets の呼び出しでコケてるのがわかります。
というわけで compass-rails の issue とか眺めたら、以下の pull req を見つけました。
Locking sprockets to 2.11 and bumping the version for now.
sprockets 側でメソッドシグネチャが変わったのでこけちゃうんですね。
解決方法
上記の pull-req と同様ですが、sprockets のバージョンを 2.11.0
以上に上がらないようにしてしまえばOKです。
Gemfile で
gem 'sprockets', '2.11.0'
といった感じで固定するとかですね。
compass-rails
の 1.1.7
でもバージョンが固定されてるので、compass-rails
をバージョンアップして Gemfile.lock
の整合性とるとかでもOKです。
そのうち compass-rails 側も対応してくれると思うので、まずはこの方法でワークアラウンドしておくと幸せになれると思います。