Rails チュートリアルでstylesheet_link_tagの行が止まる
チュートリアルの5章で'bootstrap-sass'のgemを入れてもBootstrapのcssが反映される様子は無いし、さらに進めていったら、custom.css.scssを足したあたりで、以下のようなメッセージがでて止まりました。
症状
検証用アドレス
http://0.0.0.0:3000/static_pages/home
止まった行
<%= stylesheet_link_tag "application", media: "all", "data-turbolinks-track" => true %>
エラーメッセージ
undefined method `environment' for nil:NilClass
でエラーが出ていた箇所が
in app/assets/stylesheets/custom.css.scss
原因
css,javascriptの読み込みを行うSprocketsに関するgemがインストールされていなかったこと。
app/assets/stylesheets/application.css.scss内のコメント内で
*= require_self
*= require_tree .
の部分は、自分自身と自身の存在するディレクトリ、ならびサブディレクトリのファイルを読み込みますよ、ということが書いてあるのですが、これを動かしているのがSprocketsというgemなのですが、これが5章のcss追加していくところまで入ってませんでした、という話でした。
三回目なのに見逃したのか、と哀しくなったので、三章、四章を検索してみたのですが見つけられず。
対処
StackOverflowにあったので、sprocketsを入れればいいんだな、と思っていたのですが、結局以下の三つのgemを入れたら動きました。もしかしたら、最後のだけでもいいかもしれないです。Railsは4.0.2です。
gem 'sprockets', '2.11.0'
gem 'slim', '2.0.0'
gem 'sprockets-rails', '2.0.0'
焦った。environmentなんて出てきたから環境変数かと思って最初はconfigの中を見る必要があるかと思ってそわそわしたし、
なんか前回は後ろの方で動いていた記憶があったのに、なかなか動かなかったから焦った。
追記
sprocketsが二つ並んでいておかしいな、と思ったら下のほうは
sprockets-railsの誤りでしたので、訂正しました。