2016-07-23 2 views
0

В программе Devise мы можем ограничить пользователя для регистрации непосредственно, удалив: зарегистрируемую форму символов. Модель пользователя. Но моя тема состоит в том, чтобы создать собственную страницу регистрации пользователей и контроллер и позволить администратору создавать пользователей вручную. Я пробовал много раз, но проблема заключается в том, как шифровать пароль, чтобы он стал доступен при разработке во время входа в систему. Если есть какая-либо идея, пожалуйста, помогите.Как ограничить регистрацию и создать собственный аккаунт в разработке?

+0

dont remove signup module – uzaif

+0

Но я хочу, чтобы администратор создал только пользователя, который невозможен с помощью входа. Если я вошел в систему, он перенаправляется на root_path, информируя вас о том, что вы уже вошли в систему. Есть ли идеи? @uzaif –

ответ

0

Я сделал это для решения проблемы

  1. Я просто удалил: зарегистрированная форма пользовательская модель
  2. Затем вручную создайте пользовательский контроллер и форму для создания данных.
  3. Затем установите необходимую проверку в пользовательской модели.
  4. При отправке данных пользовательская модель автоматически зашифровывает и сохраняет пароль.

И спасибо, что помогли.

1

Вот некоторые предложения и решения:

  1. Не удаляйте :regesterable из User модели. Вместо этого просто определите другой маршрут для registration в файле routes.rb, чтобы другие не могли найти этот путь для регистрации. , например. devise_for :users, path_names: { sign_up: 'register_not_allowed' }

  2. Создать модуль как Admin, а затем определить контроллер как UsersController в рамках этого модуля. например

    module Admin class UsersController < ApplicationController end end

  3. В controller создать новый, редактировать, показать, создать, обновления методы, как и для любого контроллера. создайте форму с полями email, password, password_confirmation, а также с дополнительными полями, которые являются атрибутом в модели User. Затем требуйте их в сильных параметрах вашего контроллера admin/users. Теперь, когда вы создаете пользователя, использующего эту форму, шифрование пароля не требуется.

приложение/просмотров/администратор/пользователи/_form.html.erb

<%= form_for [:admin, @user] do |f| %> <% end %>

Смежные вопросы