Ответ 1
Вам нужен только пользовательский контроллер, если вы хотите управлять пользователями отдельно от обычного процесса регистрации/обновления. У меня есть пользовательский контроллер, так что администраторы могут управлять (создавать, редактировать, обновлять, удалять) пользователей независимо от обычного процесса регистрации/обновления.
Конфликт с разработкой, вероятно, связан с тем, что у вас есть devise_for :users …
в вашем файле маршрутов, чтобы настроить его, а также resources :users
для вашего UserController. Это означает, что разработчик и ваш UserController будут пытаться использовать одни и те же маршруты /users
. Вам нужно разделить их, изменив путь, на который сопоставляется один из них. Вы могли бы добавить, например, :path => 'u'
в ваш оператор devise_for
, чтобы разрабатывать маршруты сопоставлялись с /u
и не конфликтуют с вашим UserController на /users
. В качестве альтернативы вы можете оставить только devise_for
(поэтому по-прежнему использовать /users
) и вместо этого изменить свою маршрутизацию UserController, например, resources :users_admin, :controller => 'users'
, которая будет перемещать маршруты UsersControllers для отображения на /users_admin
. Обратите внимание, что это изменит помощники пути от, например, от users_path
до users_admin_path
.
UPDATE
Следуя вашим комментариям/изменениям, я быстро просмотрел учебное пособие, и я думаю, что разработка в основном дает вам эквивалентную функциональность пользовательской функции, которая разработана в разделе 5.4 до раздела 9.1 или 9.2. (плюс некоторые дополнительные вещи, например, подтверждение по электронной почте, пароль reset, блокировка учетной записи и т.д.). Однако это не означает, что это замена для этой функции, если вы хотите попробовать и объединить Devise с этим учебником. Есть некоторые вещи, которые выглядят так, как будто они будут работать (например, Devise также определяет метод current_user
), но маршруты и т.д. Были бы разными, и разрабатывать расщепляются вещи на большее количество контроллеров (отдельные контроллеры для регистрации, входа/выхода, пароль reset...). Функциональность администратора (как в разделах 2.2, 9.3, 9.4 - создание/редактирование/удаление/список других пользователей) - это то, что я добавил в моем приложении отдельный UserController. Devise не определяет UserController, но использует маршруты users
, если вы выполняете devise_for :users
без пути, как я упоминал выше.
Итак, более конкретно:
- Вам понадобится только UserController, если вы хотите включить функции администратора, позволяющие просматривать/редактировать/удалять всех пользователей.
- Если вы хотите использовать урок в учебнике, ему, вероятно, потребуется какая-то работа, чтобы массировать вещи, чтобы соответствовать, меняя вспомогательные ссылки на страницах и т.д. Извините, я не более конкретный; Я не сделал этого урока.
Вам не хватало бы дополнительного понимания, которое приходит от всего этого, вручную, но разработка - популярный движок, так что хорошо знать. Если у вас есть время, вы можете сделать учебник полностью, а затем снова с помощью! Это поможет вам понять, что некоторые из подобных вещей делают за кулисами. P.S: Можно поучительно посмотреть на исходный код разработки, даже если вы не сразу все поняли.