読者です 読者をやめる 読者になる 読者になる

tech::hexagram

personal note for technical issue.

Rails Tutorialの解説の古い部分まとめ(随時更新)

部署の勉強会で、Ruby on Railsを使ったプロダクトを作ることになり、Rails Tutorialを参考にしながら実装を進めていた。こちらのTutorialは執筆から時間が経過していたのか、最新のライブラリのバージョンで実装した場合と異なる部分が多々あり、何度かハマった。

これからRails Tutorialを始める方が同じ思いをしないように、ひとまず現状でハマった部分をまとめておく。

なお、この記事で想定する環境は以下のとおり。

rspec

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