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

アシカタが述べたように、セッションコントローラーを変更する場合は、デバイスルーティングを次のように変更する必要があります。

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

または、変更した after_sign_in_path_for メソッドをアプリケーション コントローラーに追加すると、うまくいくはずです。

于 2012-11-08T00:21:04.867 に答える