Вы можете получить желаемую функциональность, используя метод devise после пути sign_out.
, но перед тем, как определить эти методы в помощнике приложений.
def is_admin?(user)
admin_role = Role.find(:first, :conditions => ["name = ?", "admin"])
return user.roles.include?(admin_role)
end
def is_customer?(user)
admin_role = Role.find(:first, :conditions => ["name = ?", "customer"])
return user.roles.include?(admin_role)
end
После этого включите помощник приложения в контроллер приложения.и определите этот метод
def after_sign_out_path_for(resource_or_scope)
if is_admin?(current_user)
home_path = "/admin/users/sign_in"
elsif is_customer?(current_user)
home_path = "/customer"
end
respond_to?(home_path, true) ? send(root_path) : home_path
end
Надеюсь, он будет работать нормально !!!