はじめてのRuby on Rails、トラブル記録
<< Rails2.x 新しくプロジェクト作るときの手順 | TOP | RailsでRSpecを使ってみる >>
スポンサーサイト

一定期間更新がないため広告を表示しています

posted by スポンサードリンク | | - | - | - |はてなブックマーク - スポンサーサイト
restful_authenticationのステータス管理をaasmに変える
restful_authenticationのステータス管理(仮登録⇒本登録みたいな)はデフォルトではacts_as_state_machineというプラグインを使いますが、いつも一方的にお世話になっているザリガニが見ていた...。さんによると、acts_as_state_machineはもう更新されてなくて、aasmというプラグインが今も更新されているみたいです。
aasmって名前がacts_as_state_machineを略しただけっぽいので別なものと思っていませんでした。

更新が止まっているやつは基本代替えがあれば使わないようにしてるので、aasmに入れ替えてみようと思います。

【1】restful-authenticationでファイルのジェネレート


restful-authenticationのくわしい導入手順は前に記事を書いたので省略。→こちら
ruby script¥generate authenticated user sessions --stateful
ここは同じ。

【2】aasmのインストール


一般的にはgemでインストールする方法が紹介されていることが多いですが、vendor¥pluginに入れたかったのでscript¥pluginでインストールしました。
ruby script¥plugin install git://github.com/rubyist/aasm.git

Windowsでgitの環境を導入していない場合はこちらを参照。

【3】aasmが動くようにモデルファイルを修正


aasmが動くようにするには、モデルでいくつか修正が必要でした。
この例では【1】でuserモデルを作ったので、user.rbを修正します。
require 'digest/sha1'
class User < ActiveRecord::Base
 include AASM # 追加
include AASMを追加。

以下は元の状態です。赤字の部分を変更します。
attr_accessible :login, :email, :password, :password_confirmation

 acts_as_state_machine :initial => :pending
 state :passive
  :
  : (略)
  :
 event :register do
  transitions :from => :passive, :to => :pending, :guard => Proc.new {|u| !(u.crypted_password.blank? && u.password.blank?) }
 end
  :
  :(略)


変更後はこうなります。
attr_accessible :login, :email, :password, :password_confirmation

aasm_column :state # 追加
aasm_initial_state :pending

aasm_state :passive
  :
  :(略)
  :

aasm_event :register do
transitions :from => :passive, :to => :pending, :guard => Proc.new {|u| !(u.crypted_password.blank? && u.password.blank?) }
end
  :
  :(略)

aasm_column :stateを追加、
初期設定のステータスの書き方はaasm_initial_stateに変更、
stateはaasm_state、eventはaasm_eventに変更。

これだけで普通に動きました楽しい
posted by トモト | 15:19 | 認証機能 | comments(0) | trackbacks(0) |はてなブックマーク - restful_authenticationのステータス管理をaasmに変える
スポンサーサイト
posted by スポンサードリンク | 15:19 | - | - | - |はてなブックマーク - スポンサーサイト
コメント
コメントする










この記事のトラックバックURL
http://hajimete-ruby.jugem.jp/trackback/40
トラックバック
Rails3レシピブック 190の技
Rails3レシピブック 190の技
ついにRails3対応版が出ました!!
WEB+DB PRESS Vol.58
WEB+DB PRESS Vol.58
Rails2系から3への移行時に知りたいことがひとまとまりになっててよかった!色々ググるよりこれを読む方が早い。
Rubyレシピブック 第3版 303の技
Rubyレシピブック 第3版 303の技
Rubyやるならこのリファレンスは必要。
Search this site