【Twitterやってます】 koress project | しがく(shigaku) | おかじ(okaji)

2008年1月31日 06:53

解消法: open_id_authenticationプラグイン(rails 2.0.2)


rails2.0.2とgem1.0.1では、古いopen_id_authenticationプラグインが動きません。ruby-openidのバージョンの問題です。

  1. 偉い人が作ってくれたパッチをダウンロードする。
    http://dev.rubyonrails.org/ticket/10604
    hogehoge.diffとでもしておく。
  2. #{RAILS_ROOT}/vendor/plugins/open_id_authentication/ にパッチを置く。
  3. % patch -p0 < hogehoge.diff
  4. 7,8個のファイルにパッチがあたったら正常。

また、すでに古いopen_id_authenticationでopenid関係のテーブルをmigrateしちゃった人はもうひとつ作業として、古い形式のopenid関係のテーブルを削除して、新しい形式で作り直す作業が必要です。

  1. ./script/generate migarion drop_openid_table って感じで、migrationを作る
  2. 中身を編集する。 self.upには以下のように書く。 self.downは空でもいい。(旧migrationのself.upに対応する内容を書けばbetter)。
    drop_table "open_id_authentication_associations"
    drop_table "open_id_authentication_nonces"
    drop_table "open_id_authentication_settings"
  3. rake db:migrate して、dropされたことを確認する
  4. 次に rake open_id_authentication:db:create して、新しいバージョンのopenid関係のテーブルを生成する
  5. 4.は以前に作ったファイル名と競合する可能性があるので注意。そしたらファイル名をいじくってなんとかする。
  6. rake db:migrate で新しいテーブルを生成して、完了

面倒ですな。

トラックバック