Advertisement
Guest User

Untitled

a guest
Dec 24th, 2014
204
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 5.34 KB | None | 0 0
  1. # 目次
  2.  
  3. - [Ruby バージョンアップ手順](#ruby-version_up)
  4. - [Rails バージョンアップ手順](#rails-version_up)
  5.  
  6. ## はじめに
  7.  
  8. 本文書は、 Ruby と Rails のバージョンアップ手順を定めたものである。
  9. ここでは、AuthLinkのバージョンアップ作業で行った手順を記述している。
  10. バージョンはそれぞれ Ruby2.1.5 と Rails4.1.7 である。
  11.  
  12. <a name="ruby-version_up"></a>
  13.  
  14. ## Ruby バージョンアップ手順
  15.  
  16. この手順書では、rbenvの使用を前提としている
  17.  
  18. 1. rbenv, ruby-build の更新
  19. - 望むRubyのバージョンがリストに表示されていない場合、`rbenv`と`ruby-build`の更新を行う
  20.  
  21. ```ruby
  22. # Rubyのバージョンを表示
  23. $ rbenv install --list
  24. ```
  25.  
  26. ```ruby
  27. # rbenvの更新
  28. $ cd ~/.rbenv
  29. $ git pull
  30.  
  31. # ruby-buildの更新
  32. $ cd ~/.rbenv/plugins/ruby-build
  33. $ git pull
  34. ```
  35.  
  36. 2. 再読み込み
  37.  
  38. ```ruby
  39. $ rbenv rehash
  40. ```
  41.  
  42. 3. Ruby2.1.5をインストール
  43.  
  44. ```ruby
  45. $ rbenv install -v 2.1.5
  46. ```
  47.  
  48. 4. 再読み込み
  49.  
  50. ```ruby
  51. $ rbenv rehash
  52. ```
  53.  
  54. 5. Ruby2.1.5に切り替える
  55.  
  56. ```ruby
  57. $ rbenv local 2.1.5
  58. ```
  59.  
  60. 6. bundle installを行う
  61. - `gem pry-debugger`は、Ruby2以上では使用できないので、代わりに`gem pry-byebug`を使用する
  62.  
  63. ```ruby
  64. $ bundle install
  65. ```
  66.  
  67. 以上でRubyのバージョンアップは完了
  68.  
  69. <a name="rails-version_up"></a>
  70.  
  71. ## Rails バージョンアップ手順
  72.  
  73. 1. `Gemfile`から`Rails`に関する`gem`のバージョンを書き換える
  74. - `group :assets`の記述は削除する
  75. - `gem "railties"`を新規に追加する
  76. - `gem 'rspec-rails'`のバージョンを`'~>3.1.0'`に上げる
  77.  
  78. ```ruby
  79. # new
  80. gem 'rails', '4.1.7'
  81.  
  82. gem 'sass-rails', '~> 4.0.0'
  83. gem 'less-rails', '~> 2.6.0'
  84. gem 'coffee-rails', '~> 4.0.0'
  85. gem 'twitter-bootstrap-rails', '~> 2.2.8'
  86. gem 'bootstrap_helper', '~> 4.2.3'
  87. gem "railties", ">= 4.0.0"
  88.  
  89. group :test, :development do
  90. gem 'rspec-rails', '~>3.1.0'
  91. end
  92.  
  93. # old
  94. gem 'rails', '3.2.14'
  95.  
  96. group :assets do
  97. gem 'sass-rails', '~> 3.2.3'
  98. gem 'less-rails', '~> 2.3.3'
  99. gem 'coffee-rails', '~> 3.2.1'
  100. gem 'twitter-bootstrap-rails', '~> 2.1.9'
  101. gem 'bootstrap_helper'
  102. end
  103.  
  104. group :test, :development do
  105. gem 'rspec-rails', '~>2.14.2'
  106. end
  107. ```
  108.  
  109. 2. `Gemfile.lock`を削除する
  110.  
  111. 3. `bundle install`を行う
  112.  
  113. ```ruby
  114. $ bundle install
  115. ```
  116.  
  117. 4. `config/application.rb`に記述されている`require "active_resource/railtie"`の記述を削除する
  118. - Rails4から`active_resource`は、標準では無くなり不必要となった
  119.  
  120. 5. `app/assets/stylesheets/bootstrap_and_overrides.css.less`を修正する
  121.  
  122. ```ruby
  123. # new
  124. @import "fontawesome/font-awesome";
  125.  
  126. # old
  127. @import "fontawesome";
  128. ```
  129.  
  130. 6. Railsのアップデートを行う
  131.  
  132. ```ruby
  133. $ bundle exec rake rails:update
  134. ```
  135.  
  136. - `config/`内のファイルを上書きするか聞かれる。この手順書では、一旦すべて`YES`を選択し、手順7で必要な設定をマージしている
  137.  
  138. 7. `config/`内のファイルを修正
  139. - `config/routes.rb`の修正を行う
  140.  
  141. ```ruby
  142. # new
  143. Rails.application.routes.draw do
  144.  
  145. # old
  146. AuthLink::Application.routes.draw do
  147. ```
  148.  
  149. - `config/environment.rb`に追記する
  150.  
  151. ```ruby
  152. # new
  153. BetterErrors::Middleware.allow_ip! ENV['TRUSTED_IP'] if ENV['TRUSTED_IP']
  154. ```
  155.  
  156. - `config/application.rb`の修正を行う(下記の設定を追記する)
  157.  
  158. ```ruby
  159. config.time_zone = 'Tokyo'
  160. config.i18n.default_locale = :ja
  161. I18n.enforce_available_locales = false
  162. config.active_record.schema_format = :sql
  163. config.autoload_paths += %W(#{config.root}/extras)
  164.  
  165. if Rails.env == 'test'
  166. config.i18n.default_locale = :en
  167. end
  168. ```
  169.  
  170. 以上でRailsのバージョンアップは完了
  171.  
  172.  
  173.  
  174. ## その他
  175.  
  176. 以上でバージョンアップは完了だが、使用不可となったコードが存在するため`rails s`や`spec`を流すことができなかった。
  177. `rails s`や`spec`が流れるようにするため、`AuthLink`で行ったコードの修正を以下に記載する
  178.  
  179. ## 使用不可となったコードの修正
  180.  
  181. - `attr_accessible`の記述が使用不可となった
  182. - `attr_accessible`を削除
  183.  
  184. - 正規表現で開始・終了を表す`/^``$/`が使用不可となった
  185. - `/^``$/`の代わりに`\A``\z`を使用する
  186.  
  187. - `has_many`等のアソシエーションで、`conditions`が使用不可となった
  188. - 条件指定はブロックで行うように
  189.  
  190. ```ruby
  191. # new
  192. has_many(:facility_users, -> { where(:deleted => 0) })
  193.  
  194. # old
  195. has_many(:facility_users, :conditions => { :deleted => 0 })
  196. ```
  197.  
  198. - scopeではProcオブジェクトの指定が必要に
  199.  
  200. ```ruby
  201. # new
  202. scope :alive, -> { where(:deleted => 0) }
  203.  
  204. # old
  205. scope :alive, where(:deleted => 0)
  206. ```
  207.  
  208. ## その他の修正
  209. - bootstrapのicon(icon-circle-arrow-upnなど)が表示できなくなった
  210. - bootstrap_and_overrides.css.lessに記述してある'asset-path'を'asset-url'に変更することで解決した
  211.  
  212. ```ruby
  213. # new
  214. @fontAwesomeEotPath: asset-url("fontawesome-webfont.eot");
  215.  
  216. # old
  217. @fontAwesomeEotPath: asset-path("fontawesome-webfont.eot");
  218. ```
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement