アクトインディ開発者ブログ

子供とお出かけ情報「いこーよ」を運営する、アクトインディ株式会社の開発者ブログです

Rails 3.2.2 へのアップクレード (ssl_allowed が allowed されない件)

こんにちは tahara です。

先日 いこーよRails 3.1.0 から Rails 3.2.2 にアップグレードしました。 今日はその模様を報告したいと思います。

まず Gemfile で Rails のバージョン指定を 3.2.2 にし bundle update しました。

gem 'rails', '3.2.2'

Asset Pipeline は使っていなので、 jquery-rails-2.0.1/vendor/assets/javascripts/jquery_ujs.js を public/javascripts にコピー。

config/environments/development.rb に次を追加。 開発環境で遅いクエリーは自動的に explain してくれるのはいいですね。 log/development.log に出力されます。

  # Raise exception on mass assignment protection for Active Record models
  config.active_record.mass_assignment_sanitizer = :strict

  # Log the query plan for queries taking more than this (works
  # with SQLite, MySQL, and PostgreSQL)
  config.active_record.auto_explain_threshold_in_seconds = 0.5

で、動かしてみたのですが ssl_requirement でエラーになりました。 どうやら bartt-ssl_requirement を使うのがよさそう。 Gemfile を次のように書き替えて bundle install したらうまく動きました。

gem 'bartt-ssl_requirement', '~>1.4.0', :require => 'ssl_requirement'

と思ったのですが、ssl_allowed しているアクションが http から https にリ ダイレクトされてしまう現象に遭遇しました。 もともとの ssl_requirement では ssl_allowed が ssl_required より優先されていたのに、 bartt-ssl_requirement では ssl_required の方が優先されるようになっていました。 ここは github の慣例にならって fork し、ssl_allowed が優先されるようにしました。 修正は一行です。

という感じで いこーよRails 3.2.2 にアップグレードできました。

弊社ではエンジニアを募集しています。 詳細はこちらを御覧ください。