Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- # 目次
- - [Ruby バージョンアップ手順](#ruby-version_up)
- - [Rails バージョンアップ手順](#rails-version_up)
- ## はじめに
- 本文書は、 Ruby と Rails のバージョンアップ手順を定めたものである。
- ここでは、AuthLinkのバージョンアップ作業で行った手順を記述している。
- バージョンはそれぞれ Ruby2.1.5 と Rails4.1.7 である。
- <a name="ruby-version_up"></a>
- ## Ruby バージョンアップ手順
- この手順書では、rbenvの使用を前提としている
- 1. rbenv, ruby-build の更新
- - 望むRubyのバージョンがリストに表示されていない場合、`rbenv`と`ruby-build`の更新を行う
- ```ruby
- # Rubyのバージョンを表示
- $ rbenv install --list
- ```
- ```ruby
- # rbenvの更新
- $ cd ~/.rbenv
- $ git pull
- # ruby-buildの更新
- $ cd ~/.rbenv/plugins/ruby-build
- $ git pull
- ```
- 2. 再読み込み
- ```ruby
- $ rbenv rehash
- ```
- 3. Ruby2.1.5をインストール
- ```ruby
- $ rbenv install -v 2.1.5
- ```
- 4. 再読み込み
- ```ruby
- $ rbenv rehash
- ```
- 5. Ruby2.1.5に切り替える
- ```ruby
- $ rbenv local 2.1.5
- ```
- 6. bundle installを行う
- - `gem pry-debugger`は、Ruby2以上では使用できないので、代わりに`gem pry-byebug`を使用する
- ```ruby
- $ bundle install
- ```
- 以上でRubyのバージョンアップは完了
- <a name="rails-version_up"></a>
- ## Rails バージョンアップ手順
- 1. `Gemfile`から`Rails`に関する`gem`のバージョンを書き換える
- - `group :assets`の記述は削除する
- - `gem "railties"`を新規に追加する
- - `gem 'rspec-rails'`のバージョンを`'~>3.1.0'`に上げる
- ```ruby
- # new
- gem 'rails', '4.1.7'
- gem 'sass-rails', '~> 4.0.0'
- gem 'less-rails', '~> 2.6.0'
- gem 'coffee-rails', '~> 4.0.0'
- gem 'twitter-bootstrap-rails', '~> 2.2.8'
- gem 'bootstrap_helper', '~> 4.2.3'
- gem "railties", ">= 4.0.0"
- group :test, :development do
- gem 'rspec-rails', '~>3.1.0'
- end
- # old
- gem 'rails', '3.2.14'
- group :assets do
- gem 'sass-rails', '~> 3.2.3'
- gem 'less-rails', '~> 2.3.3'
- gem 'coffee-rails', '~> 3.2.1'
- gem 'twitter-bootstrap-rails', '~> 2.1.9'
- gem 'bootstrap_helper'
- end
- group :test, :development do
- gem 'rspec-rails', '~>2.14.2'
- end
- ```
- 2. `Gemfile.lock`を削除する
- 3. `bundle install`を行う
- ```ruby
- $ bundle install
- ```
- 4. `config/application.rb`に記述されている`require "active_resource/railtie"`の記述を削除する
- - Rails4から`active_resource`は、標準では無くなり不必要となった
- 5. `app/assets/stylesheets/bootstrap_and_overrides.css.less`を修正する
- ```ruby
- # new
- @import "fontawesome/font-awesome";
- # old
- @import "fontawesome";
- ```
- 6. Railsのアップデートを行う
- ```ruby
- $ bundle exec rake rails:update
- ```
- - `config/`内のファイルを上書きするか聞かれる。この手順書では、一旦すべて`YES`を選択し、手順7で必要な設定をマージしている
- 7. `config/`内のファイルを修正
- - `config/routes.rb`の修正を行う
- ```ruby
- # new
- Rails.application.routes.draw do
- # old
- AuthLink::Application.routes.draw do
- ```
- - `config/environment.rb`に追記する
- ```ruby
- # new
- BetterErrors::Middleware.allow_ip! ENV['TRUSTED_IP'] if ENV['TRUSTED_IP']
- ```
- - `config/application.rb`の修正を行う(下記の設定を追記する)
- ```ruby
- config.time_zone = 'Tokyo'
- config.i18n.default_locale = :ja
- I18n.enforce_available_locales = false
- config.active_record.schema_format = :sql
- config.autoload_paths += %W(#{config.root}/extras)
- if Rails.env == 'test'
- config.i18n.default_locale = :en
- end
- ```
- 以上でRailsのバージョンアップは完了
- ## その他
- 以上でバージョンアップは完了だが、使用不可となったコードが存在するため`rails s`や`spec`を流すことができなかった。
- `rails s`や`spec`が流れるようにするため、`AuthLink`で行ったコードの修正を以下に記載する
- ## 使用不可となったコードの修正
- - `attr_accessible`の記述が使用不可となった
- - `attr_accessible`を削除
- - 正規表現で開始・終了を表す`/^``$/`が使用不可となった
- - `/^``$/`の代わりに`\A``\z`を使用する
- - `has_many`等のアソシエーションで、`conditions`が使用不可となった
- - 条件指定はブロックで行うように
- ```ruby
- # new
- has_many(:facility_users, -> { where(:deleted => 0) })
- # old
- has_many(:facility_users, :conditions => { :deleted => 0 })
- ```
- - scopeではProcオブジェクトの指定が必要に
- ```ruby
- # new
- scope :alive, -> { where(:deleted => 0) }
- # old
- scope :alive, where(:deleted => 0)
- ```
- ## その他の修正
- - bootstrapのicon(icon-circle-arrow-upnなど)が表示できなくなった
- - bootstrap_and_overrides.css.lessに記述してある'asset-path'を'asset-url'に変更することで解決した
- ```ruby
- # new
- @fontAwesomeEotPath: asset-url("fontawesome-webfont.eot");
- # old
- @fontAwesomeEotPath: asset-path("fontawesome-webfont.eot");
- ```
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement