36
リリースノート解説編 Rails解説セミナー http://railsguides.jp/

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

Embed Size (px)

Citation preview

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

リリースノート解説編

Rails解説セミナー

http://railsguides.jp/

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

セミナーを 始める前に

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

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

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

http://screenx.tv/yasulab

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

Slide is in SlideShare!

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

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

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

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

Sample App で実験 :)

https://github.com/yasslab/sample_app

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

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

下準備

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

Ready?

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

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

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

リリースノート解説編

Rails解説セミナー

http://railsguides.jp/

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

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

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

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

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

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

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

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

Railsガイドとは?

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

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

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

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

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

今日やること

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

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

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

主要な変更点 (全体像)

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

主要な変更点 (左半分)

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

主要な変更点 (右半分)

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

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

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

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

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

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

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

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

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

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

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

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

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

Rails 4.1 のポイント

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

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における大まかな手順

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

DEMO

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

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

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

• 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 のポイント

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

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における大まかな手順

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

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 にする

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

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 にする

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

DEMO

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

お疲れ様でした

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

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

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

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

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

今日やったこと

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

参考情報

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

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

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

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

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

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

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

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

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

リリースノート解説編

Rails解説セミナー

http://railsguides.jp/