restful_authenticationの設定
参考サイト
http://terrazilog.quipu.jp/?eid=585865
acts_as_state_machine のインストール
ruby script/plugin install http://elitists.textdriven.com/svn/plugins/acts_as_state_machine/trunk/
restful_authentication のインストール
ruby script/plugin install http://svn.techno-weenie.net/projects/plugins/restful_authentication/
セッション管理を利用するモデル(ここでは user)と
セッション管理用コントローラ(ここでは sessions)を生成
既存のモデルを上書きする場合、マイグレーションファイルだけは
上書きされないので、事前に削除しておくこと。
ruby script/generate authenticated user sessions --include-activation --stateful
-
- include-activation
メールによる認証登録を行なう
-
- stateful
acts_as_state_machine を利用したステート管理を行なう
config/routes.rb追加
map.activate '/activate/:activation_code', :controller => 'users', :action => 'activate' # map.signup '/signup', :controller => 'users', :action => 'new' map.login '/login', :controller => 'sessions', :action => 'new' map.logout '/logout', :controller => 'sessions', :action => 'destroy' map.resources :users, :member => { :suspend => :put, :unsuspend => :put, :purge => :delete }
ActionMailの設定
config/environment.rb
config.action_mailer.delivery_method = :smtp config.action_mailer.smtp_settings = { :address => 'your.smtp.domain', :port => 25, # or 587 SMTP 設定に依存 :domain => 'localdomain', # 分かるなら FQDN を設定 :authentication => :login, # SMTP 認証設定に依存 :user_name => 'username', # 認証がないなら削除 :password => 'password' # 認証がないなら削除 }
config/environment.rb
Rails::Initializer.run do |config| config.active_record.observers = :user_observer
development環境下でメール送信に失敗したことが分かるように設定
config/environments/development.rb
config.action_mailer.raise_delivery_errors = true
app/models/user_mailer.rb
def signup_notification(user) setup_email(user) @subject += 'Please activate your new account' @body[:url] = "http://localhost:3000/activate/#{user.activation_code}" # テストサーバのURLにあわせて end
def setup_email(user) @recipients = "#{user.email}" @from = "ADMINEMAIL" # <- ここ @subject = "[YOURSITE] " @sent_on = Time.now @body[:user] = user end