Próbuję uzyskać niestandardowe trasy pracy w mojej aplikacji Rails (Ruby 1.9.2 z Rails 3).Tworzenie niestandardowych tras i stron logowania
To jest mój plik config/routes.rb
match '/dashboard' => 'home#dashboard', :as => 'user_root'
devise_for :user do
get "/login", :to => "devise/sessions#new" # Add a custom sign in route for user sign in
get "/logout", :to => "devise/sessions#destroy" # Add a custom sing out route for user sign out
get "/register", :to => "devise/registrations#new" # Add a Custom Route for Registrations
end
Ale składając formularz na/login i/lub rejestru trafia do użytkowników/sign_in a użytkownicy/sign_up. Jak temu zapobiec? Lub jeszcze lepiej upewnij się, że domyślnie wszystkie żądania dla użytkowników/sign_in itp. Idą do odpowiednich tras, a nie do domyślnych tras generowanych przez Devise.
Co zrobić, aby formularz logowania był częściowy, aby uwzględnić go w dowolnym kontrolerze? Czy mogę mieć stronę logowania na stronie głównej (indeks domu), a nie na użytkowników/sign_in?
Używam Devise 1.1.3 z Rails 3 na Ruby 1.9.2, w Mac OSX Snow Leopard.
Dzięki!
W kodzie umieszczasz ": ścieżka", w tekście, który powiedziałeś ": as", poprawiono. – tokland
notice Devise 2.1.2 (nowsza wersja) używa liczby mnogiej 'devise_for: users' – AJcodez
To podejście działa, ale utknąłeś przy użyciu domyślnych pomocników ścieżek Devise, takich jak' new_user_session_path'. Aby uzyskać pomocników takich jak 'login_path', możesz umieścić blok' devise_for: user do', który OP ma tuż pod tą odpowiedzią, a otrzymasz to, co najlepsze z obu światów. –