Rails3系からの変更点

研修に行ってきたので、まとめ。 Rails初心者のわたしにとっては、研修の内容のほとんどが目新しい物情報でメモしたことを残しておく。 独学もいいけど、体系的に学ぶのも学習の初期段階には効果が大きいと感じました。

変更点の確認方法

Railsのリリース記事の確認

http://edgeguides.rubyonrails.org/4_0_release_notes.html

対応するRubyバージョンの更新

Ruby1.9.3以上のバージョンが必要になった。
1.8.x系はサポートされなくなっている。

  • Railsのバージョン 3.2系→4.0系への移行によるシステム影響 小
  • Rubyのバージョン 1.8.x系→2.0.x系への移行によるシステム影響 大

Plugin機能の廃止

vendor/pluinsディレクトリがなくなり、外部ライブラリの管理はGemfileを用いたbundlerによる方法に一本化された。

Strong Parametersの標準化

一括更新できるカラムとできないカラムを指定する方法 * 従来はモデル側で「arrt_accessible」などで一括更新可能なカラムを定義していた。  ⇒モデル側で管理するべきでないと判断されたため? * 従来のattr_accessibleも有効だが、将来的には非推奨化される可能性があるため早めの移行が望ましい

Concernsディレクトリの追加

複数のコントローラ/モデルで共有して利用するようなモジュールを配置するディレクトリとして増設された。 ファイルの自動読み込みの対象になっている

非推奨化された主な機能

pulic/index.htmlの削除

config/ruets.rbで「root」指定をした際に、意識的に同ファイルを削除する必要がなくなった。 

turbolinks

Rails4から標準になった、画面遷移を高速化するための機能 * アセットの内容が変化しないような状況で効果を発揮する * HTML5の機能の利用を前提としているため、対応していないブラウザでは機能しない * Ajaxで遷移先のソースを取得し、ページ内でBODY部を変更するためwindow.onloadなどが発火しない * jQueryの「$(document).redy()」なども同様に発火しない

特定リンクのみturbolinksを無効化
<div data-no-tubolink>
  <%= link_to 'New Bookmark', new_bookmark_path %>
</div>
turbolinks自体を無効化
  • app/assets/javascripts/application.jsから以下の行を除去する

 //= require tubolinks

  • Gemfileから「gem 'turbolinks'」の行を除去する
  • レイアウトファイルのアセット読み込み部分における「"data-turbolinks-track"=>true」の記述を除する

おまけ

  • execjs⇒assets  Winではtherubyrucerのコンパイルはハードルが高い  ※現状では、Win8でexecjsが正常に動作していないらしい   node.jsで代用できるらしい

  • .keep  gitはフォルダの中身が体と管理対象にしてくれないため、空フォルダのを強制的に管理対象とするためのファイル

  • Winでは「.」で始まるファイルを移行してくるときに削除される  ⇒.bundle/configが移行されてこない

  • railsファイル内のgem検索  $ search {gem名} -r

  • Gemのカスタマイズ  後続のバージョンが出やすいので多くの場合、カスタマイズを許しているケースが多い  ⇒/config/initializersを修正   「I18n」「config/locaks」「config/application.rb」