It won't work because Devise extracts the scope to be logged in from the url path. So "/" won't work, because it expects "/users/something". This logic is contained in find_by_path, so an easy fix would do something like this in an initializer:
class Devise::Mapping
class << self
alias_method(:orig_find_by_path, :find_by_path)
def find_by_path(path)
if path == "/"
Devise.mappings[:user]
else
orig_find_by_path(path)
end
end
end
end
Or even changing in SessionsController:
class SessionsController
prepend_before_filter :set_mapping_from_root
protected
def set_mapping_from_root
@devise_mapping = Devise.mappings[:user] if request.path == "/"
end
end