2016-08-04 3 views
0

Я создал приложение с использованием Rails 5. Мой пользовательский auth управляется камнем Devise.Аутентифицированные и не прошедшие проверку подлинности маршруты для Devise

Мне нужно иметь разные корневые пути для аутентифицированных и не прошедших проверку подлинности пользователей. Я следовал советам here. Все кажется действительно прямолинейным, но после входа в систему я по-прежнему перенаправляется на обычный root_path при нажатии на ссылку «Главная», например.

Вот мой route.rb код:

authenticated :user do 
    root to: 'api/v1/private/reporting/dashboards/summaries#index', as: :authenticated_root 
end 
root to: 'landing#index', as: :root 

Вот код для ссылки «Home» в моей навигационной панели:

- if api_v1_public_members_user_signed_in? 
    = link_to 'Home', authenticated_root_path 
- else 
    = link_to 'Home', root_path 

Может кто-нибудь пятно что-то, что я мог бы не быть?

** FYI the 'api_v1_public_members_user_signed_in?' метод может выглядеть незнакомым, но это необходимо, так как я использую имена моих контроллеров разработки. См. here для получения дополнительной информации.

ответ

0

Try обертывания как аутентифицированные и неаутентифицированная дорожка корневой под devise_scope и давая им как отдельные имена:

devise_scope :user do 
    authenticated :user do 
    root to: 'api/v1/private/reporting/dashboards/summaries#index', as: :authenticated_root 
    end 

    unauthenticated :user do 
    root to: 'landing#index', as: :unauthenticated_root 
    end 
end 

Затем измените ваш взгляд:

- if api_v1_public_members_user_signed_in? 
    = link_to 'Home', authenticated_root_path 
- else 
    = link_to 'Home', unauthenticated_root_path 
+0

Кроме того, кажется, не работает, как ожидался , Я все еще перенаправлен на «unauthenticated_root_path» @PaulFioravanti – Herm

Смежные вопросы