Accountコントローラの修正
class AccountController < ApplicationController def signup # Activation前まで @user = User.new(params[:user]) return unless request.post? @user.save! #self.current_user = @user #redirect_back_or_default(:controller => '/account', :action => 'index') # Activationへ飛ばす redirect_to(:action => 'signup_notification') flash[:notice] = "Thanks for signing up!" rescue ActiveRecord::RecordInvalid render :action => 'signup' end # Notification用 def signup_notification end # ユーザをActivateする def activate @user = User.find_by_activation_code(param[:id]) if @user and @user.activate self.current_user = @user flash[:notice] = "Your account has been activated." end end end
23:40 追記:Observerの設定
config/enviromnent.rbに下記を追加
config.active_record.observers = :user_observer
各種Viewの作成
- app/views/user_notifier/signup_notification.rhtml
アカウントが作成されました. ユーザ名 : <%= @user.login %> パスワード: <%= @user.password %> アカウントをアクティベートするために,下記URLにアクセスしてください. <%= @url %>
- app/views/user_notifier/activation.rhtml
<%= @user.login %>さん ユーザ登録が完了しました. <%= @url %>
- app/views/account/signup_notification.rhtml
アクティベートの為のメールを送信しました. メールの内容に従ってアクティベーションをしてください.
- app/views/account/activate.rhtml
ようこそ <%= self.current_user.login %> さん!
ユーザー登録が完了しました。
確認
メールが届かないorz
23:40 追記:Observerを追加
したがまだメールが....orz
注意事項
認証が必要なコントローラに以下を追加.
before_filter :login_required