Rails3系からの変更点
研修に行ってきたので、まとめ。 Rails初心者のわたしにとっては、研修の内容のほとんどが目新しい物情報でメモしたことを残しておく。 独学もいいけど、体系的に学ぶのも学習の初期段階には効果が大きいと感じました。
変更点の確認方法
Railsのリリース記事の確認
http://edgeguides.rubyonrails.org/4_0_release_notes.html
対応するRubyバージョンの更新
Ruby1.9.3以上のバージョンが必要になった。
1.8.x系はサポートされなくなっている。
Plugin機能の廃止
vendor/pluinsディレクトリがなくなり、外部ライブラリの管理はGemfileを用いたbundlerによる方法に一本化された。
Strong Parametersの標準化
一括更新できるカラムとできないカラムを指定する方法 * 従来はモデル側で「arrt_accessible」などで一括更新可能なカラムを定義していた。 ⇒モデル側で管理するべきでないと判断されたため? * 従来のattr_accessibleも有効だが、将来的には非推奨化される可能性があるため早めの移行が望ましい
Concernsディレクトリの追加
複数のコントローラ/モデルで共有して利用するようなモジュールを配置するディレクトリとして増設された。 ファイルの自動読み込みの対象になっている
非推奨化された主な機能
- ActiveRecord::SessionStore 外部Gem「activerecord-session_store」へ移行 ⇒「encrypted_cooie_store」が導入され、CookieStoreを暗号化することで秘密情報も保存しやすくなった
- ActiveResource https://github.com/rails/activeresource
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」