Używam Rails 3 i Devise do tworzenia aplikacji, w której użytkownicy docierają do witryny i wyświetlają stronę główną zawierającą login i formularz rejestracji. Ta strona ma swój własny sterownik („Strona główna”), więc jest to trasa jestRails 3 w/Devise: Jak ustawić dwie oddzielne strony główne na podstawie tego, czy użytkownik jest uwierzytelniony, czy nie?
root :to => "homepage#index"
chcę wyświetlić inną stronę, jeśli użytkownik jest już zalogowany. To konto aby mając punkt korzeniowy do
root :to => "dashboard#index"
Czy istnieje sposób zapisania warunkowej trasy w routes.rb, która pozwoliłaby mi sprawdzić, czy użytkownik jest uwierzytelniony przed przekierowaniem ich na jedną z tych stron głównych?
Próbowałem użyć następującego kodu, ale jeśli nie jestem zalogowany, program poprosi mnie o zalogowanie, więc wyraźnie działa tylko pierwsza trasa.
authenticate :user do
root :to => "dashboard#index"
end
root :to => "homepage#index"
Również chcę url aby wskazać www.example.com w obu przypadkach, tak że www.example.com/dashboard/index i www.example.com/homepage/index nigdy nie pojawiają się w przeglądarka.
Dzięki za milion!
Bardzo dziękuję @Bradley, to mnie zabijało :) –
Robię to samo, ale zarówno zalogowany użytkownik, jak i niezalogowany użytkownik użył dashboard # index –
Ostrzeżenie: To nie działa z Railsami 4, pojawia się komunikat o błędzie: 'Nieprawidłowa nazwa trasy, już używana: 'root'' – Happynoff