Potrzebujesz tylko kontrolera użytkowników, jeśli chcesz zarządzać użytkownikami oddzielnie od normalnego procesu rejestracji/aktualizacji. Mam kontroler użytkowników, aby administratorzy mogli zarządzać (tworzyć, edytować, aktualizować, usuwać) użytkowników niezależnie od normalnego procesu tworzenia/aktualizacji rejestru.
Konflikt z opracowaniem jest prawdopodobnie dlatego, że masz devise_for :users …
w pliku tras, aby skonfigurować programowanie, a także masz resources :users
dla swojego kontrolera UsersController. Oznacza to, że devise i Twój ControllerController będą próbować udostępniać niektóre z tych samych tras /users
. Musisz je rozdzielić, zmieniając ścieżkę, do której jest przypisany jeden z nich. Możesz dodać, na przykład, :path => 'u'
do swojej instrukcji devise_for
, aby trasy były mapowane na /u
i nie będą w konflikcie z Twoim kontrolerem Users na /users
. Ewentualnie możesz pozostawić sam plik devise_for
(dlatego nadal używasz /users
) i zamiast tego zmienić routing UsersController na, na przykład, resources :users_admin, :controller => 'users'
, który przenosi trasy Twoich użytkowników, które mają być mapowane na /users_admin
. Zauważ, że to zmieniłoby ścieżkę pomocników z, na przykład, users_path
na users_admin_path
.
UPDATE
obserwuję Twój komentarz/edit, miałem okiem na kursie i myślę, że Devise zasadzie daje równoważną funkcjonalność funkcjonalności związanych użytkownika, który został opracowany z pkt 5.4 do około sekcji 9.1 lub 9.2. (plus dodatkowe rzeczy, na przykład potwierdzenie wiadomości e-mail, resetowanie hasła, blokowanie konta itp.). Jednak nie oznacza to, że jest to zastępcza zamiennik dla tej funkcji, jeśli chcesz spróbować połączyć Devise z tym samouczkiem. Są pewne rzeczy, które wyglądają, jakby działały (np. Devise definiuje również metodę current_user
), ale trasy itd. Byłyby inne, a programowanie dzieliłoby się na więcej kontrolerów (oddzielne kontrolery do rejestracji, logowania/wylogowywania, resetowania hasła ...). Funkcjonalność typu administratora (podobnie jak w sekcjach 2.2, 9.3, 9.4 - tworzenie/edycja/usuwanie/lista innych użytkowników) jest tym, co dodałem w aplikacji osobnego kontrolera UsersController. Program Devise nie definiuje kontrolera UsersController, ale korzysta z tras users
, jeśli wykonasz devise_for :users
bez ścieżki, o czym wspomniałem powyżej.
Tak, a dokładniej:
- będzie potrzebował UsersController tylko jeśli chcesz włączyć funkcję administratora typu pozwalając podglądu/edycji/usuwania wszystkich użytkowników.
- Jeśli chciałbyś użyć programu devise w samouczku, prawdopodobnie potrzebowałbyś trochę pracy, żeby dopasować rzeczy do siebie, zmieniając linki pomocników na stronach itp. Niestety nie jestem bardziej konkretny; Nie zrobiłem tego samouczka.
Będziesz tracić dodatkowe zrozumienie, które wynika z robienia tego ręcznie samodzielnie, ale wymyślić jest popularny silnik, więc dobrze jest wiedzieć, jak również. Jeśli masz czas, możesz zrobić samouczek w całości, a następnie ponownie z pomocą! Pomoże ci zrozumieć, że niektóre z rzeczy, które wymyślają, robią za kulisami. P.S: To może być pouczające patrzeć na kod źródłowy, nawet jeśli nie rozumiesz go od razu.
Jeśli chcesz wykonać jakieś dostosowanie, powinieneś utworzyć "kontroler użytkowników". Bo do twoich wymagań? Pierwszą rzeczą, którą powinieneś wiedzieć, dlaczego tworzymy nowy kontroler? –
http://stackoverflow.com/questions/21904701/ruby-on-rails-4-what-authentication-gem-to-use/21907080#21907080 –
Natknąłem się na to moje starsze pytanie i pomyślałem, że mogę połączyć na blogu, który pomógł mi lepiej zrozumieć kilka rzeczy. Tutaj http://www.korenlc.com/rails-tutorial-authentication-with-devise/ – imarg