Rails Tutorialの解説の古い部分まとめ(随時更新)
部署の勉強会で、Ruby on Railsを使ったプロダクトを作ることになり、Rails Tutorialを参考にしながら実装を進めていた。こちらのTutorialは執筆から時間が経過していたのか、最新のライブラリのバージョンで実装した場合と異なる部分が多々あり、何度かハマった。
これからRails Tutorialを始める方が同じ思いをしないように、ひとまず現状でハマった部分をまとめておく。
なお、この記事で想定する環境は以下のとおり。
- ruby 2.1.2p95
- ruby on rails 4.2
- rspec 3.3.0
rspec
旧 : it { [should|should_not] xxx } -> 新 : expect(target).[to|not_to] xxx
- shouldはrspec2系の書き方で、3系ではexpectを使う
- 参考:http://qiita.com/awakia/items/d880250adc8cdbe7a32f
spec/support配下のmoduleを読み込む
erb
bootstrapの記法が古い。これはRails Tutorialがbootstrap 2系を想定した記述になっているため。Gemfileにバージョン指定なしでbootstrapを入れると、bootstrap3系がインストールされるため、以下のように2系と3系で異なる部分は修正する必要がある。
- class名の違い
# 旧 <div class="span6 offset3"> # 新 <div class="col-md-6 col-md-offset-3"> ## 領域指定のclass属性が変わっている
- flashで黄色のバナーを出す場合
# 旧 flash[:notice] = "hogehoge" # 新 flash[:warning] = "hogehoge"
- フォームで属性値の入力欄を追加する場合
# 旧 <%= f.label :name %> <%= f.text_field :name %> # 新 <div class="form-group"> <%= f.label :name, class: "control-label" %> <%= f.text_field :name, class: "form-control" %> </div> ## form-groupのdivで囲い、中にcontrol-labe, form-controlのclass属性を追加する
scss
bootstrapのLESSの変数名が上記同様、2系3系で異なる。旧バージョンではlowerCamelを採用していたが、新バージョンではハイフン区切りを採用している。
# 旧 $grayLighter # 新 $gray-lighter