Rails:注册后设计重定向用户

时间:2015-01-22 21:33:58

标签: ruby-on-rails ruby redirect ruby-on-rails-4 devise

在我的rails应用程序中我想将用户重定向到类似于http://localhost:3000/en/profiles/first_name-last_name/edit的路径,因为我使用的是friendly_id gem,这是我的个人资料模型

extend FriendlyId
friendly_id :full_name, use: :slugged


def full_name
    (self.first_name + " " + self.last_name).titleize
end 

我创建了一个注册控制器来重定向用户,这是我的控制器

class RegistrationsController<设计:: RegistrationsController   保护

def after_sign_up_path_for(resource)
    "/profiles/#{current_user.profile.id}/edit" if current_user
end

这是我的路线

scope "(:locale)", locale: /en|fr/ do
  devise_for :users, :controllers => { :registrations => "registrations" } 
end

但注册后我总是被重定向到root_path而不是http://localhost:3000/en/profiles/first_name-last_name/edit

1 个答案:

答案 0 :(得分:0)

将注册控制器更改为

def after_sign_up_path_for(resource)
    edit_profile_path(current_user.profile) if current_user
end