9
8

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

Rails4 系 + compass-rails を使ってる際に Rails のバージョン上げると sprockets がコケる際の対処法

Posted at

Rails4 + compass-rails を使っていて、Rails を 4.0.2 から 4.0.3 とかにバージョンアップすると以下の様なエラーが発生するようになることがあります。

Screen Shot 2014-04-10 at 13.44.06.png

エラーメッセージも「wrong number of arguments (2 for 1)」といった感じで身も蓋もない感じですね。
正直どうしたらええんじゃいってなります。

原因

落ち着いて、スタックトレースを見ると sprockets の呼び出しでコケてるのがわかります。

Screen Shot 2014-04-10 at 13.48.51.png

というわけで 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-rails1.1.7 でもバージョンが固定されてるので、compass-rails をバージョンアップして Gemfile.lock の整合性とるとかでもOKです。

そのうち compass-rails 側も対応してくれると思うので、まずはこの方法でワークアラウンドしておくと幸せになれると思います。

9
8
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
9
8

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?