Хорошо, так что я решил это! Я опубликую свое решение для любого с похожим вопросом, который может принести пользу.
Один из моих вопросов был:
Могу ли я также запустить:
rails g controller Users
Да, это то, что я сделал. Я использую генераторы nifty scaffold для генерации представлений, поэтому эта команда будет выглядеть следующим образом
rails g nifty:scaffold user
Важно отметить, что я НЕ передавал переменные после пользователя. Devise уже создал таблицу Users в базе данных. Это создаст конфликт. Rails думает, что вы хотели бы перезаписать вашу исходную базу данных, чего вы не хотите делать.
При этом строится правильная структура для пользовательского CRUD. Затем откройте файл config / rout.rb.
Используя изящные генераторы, добавьте resources :users
в начало этого файла - переместите его ниже ресурса devise и добавьте префикс пути, как описано на этой вики-странице devise , чтобы наподобие приведенного ниже кода.
devise_for :users, :path_prefix => 'd'
resources :users
Это очень важно, чтобы устранить любые конфликты с вашим пользовательским контроллером и путями к URL-адресам контроллеров devise, добавив префикс "/ d /" ко всем контроллерам devise.
А также добавление следующего кода в ваш метод обновления users_controller:
if params[:user][:password].blank?
params[:user].delete(:password)
params[:user].delete(:password_confirmation)
end
Что гарантирует правильность проверки устройства.
Теперь самое интересное - зарегистрируйте пользователя, если вы этого еще не сделали. Теперь у вас есть страница профиля для этого пользователя, расположенная по адресу:
LOCALHOST: 3000 / пользователей / 1
LOCALHOST: 3000 / пользователей / 2
LOCALHOST: 3000 / пользователей / 3
... ЭСТ
Вы можете отредактировать страницу пользователя show.html.erb в папке представлений, чтобы изменить информацию, отображаемую на странице профиля каждого пользователя.
Что касается моего вопроса о ролях:
<!-- in users/_form.html.erb -->
<%= f.collection_select :role, User::ROLES, :to_s, :humanize %>
Теперь у вас есть доступ к этому в пользовательских контроллерах, созданных генератором nifty-scaffold, так что вы можете добавить этот код в форму, если вы также следовали методам Райана Бейтса для интеграции ролей CanCan, как описано здесь,
Надеюсь, это поможет кому-то еще.