使用Rails3&amp ;;用户注册后如何创建配置文件设计

时间:2011-01-14 04:14:05

标签: ruby-on-rails-3 controller devise profile

我正在使用个人资料应用程序做一个简单的用户。用户注册和 自动登录。到目前为止工作正常。现在,我想 成功注册后创建配置文件并重定向用户 他/她的个人资料。

我有一个用户模型和控制器。 Devise也创造了 登记控制员。我安装了宝石。我复制了设计 我打算重写文件。

首先,无论我在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

其次,如何插入配置文件创建步骤?

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?

你们怎么解决这个问题?

1 个答案:

答案 0 :(得分:4)

首先,请格式化您的帖子并使用&lt; code&gt;片段为块。这样它变得非常易读。

来你的问题: 默认设计sign ins并在注册后重定向到应用程序root_path。 如果您希望重定向到其他路径,可以通过几种方式指定它。 一种是为您的设计资源指定root_path。所以在你的情况下它将是

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

每次登录时,您都会将您重定向到profile#new。 每次您可以在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