deviseを使うとconfig/routes.rbに
config/routes.rb
Rails.application.routes.draw do
authenticated :user do
root to: 'dashboard#show', as: :user_root
end
root to: 'landing#show'
end
こんな感じで、ログイン時とそうでない時のルーティングが書けます。
authenticated-instance_method
http://www.rubydoc.info/github/plataformatec/devise/master/ActionDispatch/Routing/Mapper#authenticated-instance_method
これをdevise以外で実現したい時は、constraintsで実現できます。
config/routes.rb
class AuthenticatedConstraint
def matches?(request)
request.session['user_id'].present?
end
end
Rails.application.routes.draw do
constraints AuthenticatedConstraint.new do
root to: 'dashboard#show', as: :user_root
end
root to: 'landing#show'
end
便利(\( ⁰⊖⁰)/)