Ruby on Rails 3.2.11 から 3.2.17へのUpgrade

Rails 4への橋渡しとして。

環境

Ruby gemのアップグレード

% gem update --system
% gem -v
2.2.2

Ruby on Railsのアップグレード

% rvm gemset use rails3
% gem install rails -v 3.2.17
% rails -v
Rails 3.2.17

bundlerが自動でアップデートされないので個別にアップデート。

% sudo gem update bundler

既存のプロジェクトのアップデート

Gemfileの参考が欲しいので別にプロジェクトを生成。

% rails new app_3217

既存のプロジェクトが app_3211 以下にあるとする。Gemfileの内容を比較して更新する。

% diff app_3211/Gemfile app_3217/Gemfile
% vi app_3211/Gemfile

bundleでGemfileを最新にする。

% cd app_3211
% rvmsudo bundle update

設定ファイルを最新版にする。以下のファイルが書き換えられるので注意。

    config/boot.rb
    config/routes.rb
    config/application.rb
    config/environments/development.rb
    config/environments/production.rb
    config/environments/test.rb
    config/initializers/secret_token.rb
    config/initializers/session_store.rb
    config/locales/en.yml

設定ファイルを最新版にする。

% rake rails:update

最新版になった設定ファイルと既存の設定ファイルと照らし合わせる。

twitter-bootstrap-railsのアップグレード

Railsのアップグレードにともない、twitter-bootstrap-railsもアップグレードされたので対応する。以下のファイルが置き換えられるのでバックアップをとっておく。

  • app/assets/javascripts/bootstrap.js.coffee
  • app/assets/stylesheets/bootstrap_and_overrides.css.less

GitHub: seyhunak / twitter-bootstrap-rails Upgrading Guideに従い、twitter-bootstrap-railsを導入。

% rails g bootstrap:install

新しくなった bootstrap.js.coffee と bootstrap_and_overrides.css.less についてバックアップと比較し、適宜編集する。

devise 3.0 から 3.1

@znz blog:devise 3.0.3 と devise 3.1.0 で自動生成されるファイルの違いにしたがい修正する。

確認用につくったRailsアプリのGemfileにdeviseを追加し、bundle install

% cd app_3217
% vi Gemfile
% bundle install

Devise:Viewsの差分をチェック

% rails generate devise:views
% cd app/views/devise/mailer
% diff confirmation_instructions.text.erb ~/app_3211/app/views/devise/mailer/confirmation_instructions.text.erb
% diff unlock_instructions.text.erb ~/app_3211/app/views/devise/mailer/unlock_instructions.text.erb
% diff reset_password_instructions.text.erb ~/app_3211/app/views/devise/mailer/reset_password_instructions.text.erb

% cd ../shared/
% diff _links.erb ~/app_3211/app/views/devise/shared/_links.erb