我正在使用个人资料应用程序做一个简单的用户。用户注册和 自动登录。到目前为止工作正常。现在,我想 成功注册后创建配置文件并重定向用户 他/她的个人资料。
我有一个用户模型和控制器。 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?
你们怎么解决这个问题?
答案 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