deviseでログイン後のURLを設定する方法。
deviseではログイン後にはデフォルトでroot_pathに移動するようになってる。それを変えたい。
devise / lib / devise / controllers / helpers.rb
def after_sign_in_path_for(resource_or_scope)
scope = Devise::Mapping.find_scope!(resource_or_scope)
home_path = "#{scope}_root_path"
respond_to?(home_path, true) ? send(home_path) : root_path
end
上記の様にresource(普通はUser)のroot_pathが設定されてればそっちに行くようになってるので下記の様にuser_root_pathに何かを設定すればいい。
# config/routes.rb:
Foo::Application.routes.draw do
match '/snippets' => 'snippets#index', :as => :user_root
end
ログイン後に/snippetsに行くようになった。