2016-07-23 96 views
0

在设计中,我们可以通过删除:regisrable symbol form用户模型来限制用户直接注册。但我的主题是创建自己的用户注册页面和控制器,并允许管理员手动创建用户。我尝试了很多次,但问题是如何加密密码,以便在登录时可以通过设计进行访问。如果有任何想法,请帮助。如何限制注册并在设计中创建自己的注册?

+0

不删除注册模块 – uzaif

+0

但我希望管理员只创建用户登录不可能的。如果我登录,它将重定向到root_path,通知您已经登录。是否有任何想法? @uzaif –

回答

0

我这样做是为了解决问题

  1. 我刚刚删除的:可注册表单用户模型
  2. 然后手动创建一个用户控制器和用于创建数据的表单。
  3. 然后在用户模型中设置必要的验证。
  4. 提交数据时用户模型会自动加密并保存密码。

并感谢您的努力帮助

1

以下是一些建议和解决方案:

  1. 不要:regesterableUser模型中删除。相反,只需为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 %>