2

我正在努力设计在登录后重定向到用户的个人资料页面。我的路线文件如下所示:

get "profiles/index"

get "users/index"

get "users/show"

authenticated :user do
 root :to => 'home#index'
end
root :to => "home#index"
devise_for :users
resources :users
scope ":username", :as => "user" do
 match '/', :to => 'profiles#index'
end

我希望它重定向到 /myusername 用户的个人资料页面。谢谢你们的帮助。

4

1 回答 1

2

如果要更改登录重定向,可以通过添加新的 SessionsController 来覆盖 after_sign_in_path_for 方法,如下所示:

class SessionsController < Devise::SessionsController  

  #after_sign_in_path_for is called by devise
  def after_sign_in_path_for(user)
   "/users/#{user.username}" #adjust the returned path as needed
  end  

end

正如 Ashikata 提到的,如果您要更改会话控制器,则需要将设计路由更改为以下内容。

devise_for :users, :controllers => { :sessions => 'sessions' }

或者,将修改后的 after_sign_in_path_for 方法添加到您的应用程序控制器应该可以解决问题。

于 2012-11-08T00:21:04.867 回答