Rails解説セミナー: リリースノート解説編

Preview:

Citation preview

リリースノート解説編

Rails解説セミナー

http://railsguides.jp/

セミナーを 始める前に

講義中に参照したリンクはコメント欄で (質問もお気軽に)

講師のターミナルは下記 URL から閲覧できます :)

http://screenx.tv/yasulab

Slide is in SlideShare!

http://www.slideshare.net/yasulab/presentations

質問はいつでもお気軽に! 個別相談は休憩や終了後に :)

Sample App で実験 :)

https://github.com/yasslab/sample_app

1. $ git clone \ https://github.com/yasslab/sample_apps.git

2. 対象のディレクトリに移動後: $ git init ; $ bundle exec rake db:migrate $ bundle exec rake db:test:prepare $ bundle exec rake db:populate

3. $ gem install rails --version 4.0.5 4. (Option) $ gem install rails --version 4.1.8 5. (Option) $ gem install rails --version 4.2.3

下準備

Ready?

解説セミナーを 進めていきましょう!

リリースノート解説編

Rails解説セミナー

http://railsguides.jp/

• 中級者~上級者向けの大型リファレンス

• 読み進める順番は特になく、機能毎に解説:

• e.g. Active Record の基礎、バリデーション

• e.g. Action View の概要、フォームヘルパー

• e.g. Action Controller の概要、ルーティング

• 例外: Railsをはじめよう → Rails チュートリアル

• ウェブ版は全編無料! http://railsguides.jp/

Railsガイドとは?

• リリースノートを見ながら 4.0 の概要を知る

• リリースノートを見ながら 4.1 との違いを知る

• リリースノートを見ながら 4.2 との違いを知る

時間の許す限り,色々な機能を 実際に触れていきましょう :)

今日やること

Rails 4.0 リリースノートhttp://railsguides.jp/4_0_release_notes.html

主要な変更点 (全体像)

主要な変更点 (左半分)

主要な変更点 (右半分)

Rails 4.0 のポイント• Ruby 2.0 が推奨 / Ruby 1.9.3 以上がサポート対象

• Strong Parameters の導入マスアサイメント脆弱性があるとエラーになる

• Turbolinks の導入HTMLの一部分だけを更新する技術: ページ遷移時にURLと、AJAXでtitleやbodyを差し替える

• Russian Doll Caching の導入ネストしたViewの断片毎にキャッシュする。各断片は依存関係のセットに応じて期限切れになる。

Sample App が既に4.0.5なので少し眺めるだけ

http://railsguides.jp/4_1_release_notes.htmlRails 4.1 リリースノート

• Active Record がよりスマートに :) db:reset だけで test:db:prepare などが不要に!

• アプリケーションプリローダ「Spring」の導入db:migrate 後などの再起動が不要に!

• config/secrets.yml の導入外部API用のアクセスキーなどもここに保存 Rails.application.secrets で取り出し可能

Rails 4.1 のポイント

1. Gemfile の ‘ruby’ のバージョンを 2.0.0 にする

2. Gemfile の ‘rails’ のバージョンを 4.1.8 にする

3. $ bundle update $ bundle exec rake rails:update

4. $ bundle exec rake db:reset # $ bundle exec rake db:migrate # WARNING: db:test:prepare is deprecated. # Change: User.all.limit(n) -> User.limit(n)

5. $ bundle exec spec spec/ # Update: gem 'rspec-rails', '~> 2.14.0.rc1'

Rails 4.1における大まかな手順

DEMO

http://railsguides.jp/4_2_release_notes.htmlRails 4.2 リリースノート

• RSpec 2.x がサポート対象外になりましたcf. https://github.com/rspec/rspec-rails/issues/1187 cf. Transpec: http://yujinakayama.me/transpec/

• Web Console が標準デバッグ環境にブラウザ上ですぐにデバッグできるようになった

• Active Job の導入 (非同期処理) メール送信処理などを簡単に非同期化できる

• Adequate Record による高速化find/find_byなどの呼び出しが最大2倍に向上!

Rails 4.2 のポイント

1. Gemfile の ‘ruby’ のバージョンを 2.2.2 にする# Update: gem ‘sqlite’, ‘1.3.10’

2. Gemfile の ‘rails’ のバージョンを 4.2.3 にする# RSpec 2 on Rails 4.2 is NOT supported. => ‘~> 3.1’

3. $ bundle update $ bundle exec rake rails:update # config/routes.rb はそのままで OK => 今回はRSpec絡みが多いので別紙参照

4. $ bundle exec rake db:reset $ bundle exec spec spec/

Rails 4.2における大まかな手順

1. gem ‘rspec-rails’, ‘~> 3.1’ gem 'capybara', '~> 2.4.0' gem 'rspec-its', '1.2.0' gem 'turbolinks', '~> 2.5.3'

2. $ bundle update $ bundle exec rails generate rspec:install $ mv spec/requests spec/features

3. $ find spec/ -name "*_spec.rb" | xargs gsed -i "s/require 'spec_helper'/require ‘rails_helper'/g"

4. コメントアウト in ‘rails_helper.rb’: Dir[Rails.root.join(‘spec/support/**/*.rb’)].each {|f| require f}

RSpec 3.1 にする

1. ‘spec/features/authentication_pages_spec.rb’ を更新:# 追加: describe "authorization", type: :request do # 変更: root_url => root_path in GET request

2. ‘spec/models/user_spec.rb’ を更新:# 変更: be_false => be_falsy

3. $ gem install transpec $ rbenv rehash $ transept

4. $ bundle exec rspec spec/ 2>&1

RSpec 3.1 にする

DEMO

お疲れ様でした

• リリースノートを見ながら 4.0 の概要を知る

• リリースノートを見ながら 4.1 との違いを知る

• リリースノートを見ながら 4.2 との違いを知る

時間の許す限り,色々な機能を 実際に触れていきましょう :)

今日やったこと

参考情報

Rails アップグレードガイドhttp://railsguides.jp/upgrading_ruby_on_rails.html

Rails 4.0 リリースノートhttp://railsguides.jp/4_0_release_notes.html

http://railsguides.jp/4_1_release_notes.htmlRails 4.1 リリースノート

http://railsguides.jp/4_2_release_notes.htmlRails 4.2 リリースノート

リリースノート解説編

Rails解説セミナー

http://railsguides.jp/