2011-01-14 12 views
5

私はプロファイルアプリケーションを使って簡単なユーザーをやっています。ユーザレジスタと が自動的にログインします。これまでのところうまく動作します。さて、私は 登録が成功した後にプロフィールを作成し、ユーザー を彼/彼女のプロフィールにリダイレクトしたいと思います。Rails3&Deviseでユーザー登録した後でプロファイルを作成する方法

私はユーザーモデルとコントローラを持っています。また、登録コントローラー も作成しました。私は宝石をインストールしました。私はdeviserファイルをコピーしました ファイルと私は作成アクションをオーバーライドする予定です。

まず、私がregistrations_controller.rbで編集したものは何でも が変更されます。

class Devise::RegistrationsController < ApplicationController 
prepend_before_filter :require_no_authentication, :only => 
[ :new, :create, :cancel ] 
prepend_before_filter :authenticate_scope!, :only => 
[:edit, :update, :destroy] 
include Devise::Controllers::InternalHelpers 

第2に、プロファイル作成手順の挿入方法は?

def create 
    build_resource 

    if resource.save 
    if resource.active? 
     set_flash_message :notice, :signed_up 
     sign_in_and_redirect(resource_name, resource) 
    else 
     set_flash_message :notice, :inactive_signed_up, :reason => 
resource.inactive_message.to_s 
     expire_session_data_after_sign_in! 
     redirect_to after_inactive_sign_up_path_for(resource) 
    end 
    else 
    clean_up_passwords(resource) 
    render_with_scope :new 
    end 
end 

私はどのようにあなたたちはその問題に取り組むだろう

current_user.create_profile under is resource.active? 

を追加することを考えていましたか?

答えて

4

まず、投稿をフォーマットし、スニペットにコード>ブロックを使用してください。そうすれば、それは非常に読みやすくなります。

問題が発生しました: デベロッパーは、デフォルトでサインインし、登録後にアプリケーションroot_pathにリダイレクトします。 他のパスにリダイレクトする場合は、いくつかの方法で指定できます。 1つはあなたのdevise reourceのroot_pathを指定することです。だからあなたのケースでは、これはprofile#newにあなたがログインするたびにリダイレクトされます

match '/user/profile/new' => 'profiles#new', :as => 'user_root' 

になります。 profile#newにbefore_filterを追加して、プロファイルが存在するかどうかをチェックし、他のページにリダイレクトできるたびに、profile#newへのリダイレクトを防止するには、プロファイルが存在する場合はダッシュボードを指定します。ここで

は工夫のためredirect_pathを変更する方法を示すリンクです: https://github.com/plataformatec/devise/wiki/How-To:-Redirect-to-a-specific-page-on-successful-sign-in

+0

こんにちはPravin、感謝。私は試してみる。次に、ユーザーIDパラメータを渡すだけです。 – Olivier

+0

私はあなたがcurrent_userでそれを行うことができると思います – Pravin

+0

sign_in_and_redirect(resource_name、resource)を 'user_root'に更新する方法 – Olivier

関連する問題