是否可以将Devise Registration Controller与Administrate仪表板连接起来?

时间:2017-01-23 00:12:09

标签: ruby-on-rails ruby devise

我正在创建一个rails员工仪表板应用程序,我可以在其中查看员工列表。对于此应用程序,我是唯一能够查看管理仪表板页面的用户。我使用漂亮的administrate gem实现了我的管理功能。通过点击此网址Administrate example,可以找到展示信息中心的示例应用。我的仪表板完全相同,没什么特别的。但是,我将遇到需要创建其他用户/ amins(人力资源)以登录并能够编辑,删除员工列表的场合。

对于身份验证,我使用了很棒的devise gem,并且我成功地能够登录,注册,注销等等。我需要能够通过管理仪表板创建新用户。我将仪表板设置为显示用户字段,但我目前无法创建用户。以下是我的用户信息中心的图片供参考

enter image description here

我遇到的问题是,当我输入Encrypted password的密码时,由于Password can't be blank验证,我无法这样做。

查看我的日志,我可以看到,当我去设计注册页面时,它会转到Devise::RegistrationsController,同时创建我的用户,管理员宝石会通过Admin::UsersController 。当然,社区中的某个人使用了通过管理仪表板和设计创建用户的组合。有没有人有任何关于如何自定义此功能的建议?

2 个答案:

答案 0 :(得分:2)

这似乎是一个强大的障碍问题。您必须清理这些参数。至少对我来说,最干净的解决方案是覆盖RegistrationsController,如下所示:

# app/controllers/registrations_controller.rb
class RegistrationsController < Devise::RegistrationsController

  private

  def sign_up_params
    params.require(:user).permit(:email, :password, :password_confirmation) # list every parameter you'd like to register with
  end
end

并将此控制器映射到 routes.rb 中,如下所示:

devise_for :users, :controllers => { registrations: 'registrations' }

你可以从article获得灵感。

此外,我注意到您正在尝试使用encrypted_pa​​ssword字段进行操作。那不是个好主意。 Devise将为您处理。您可以改为输入密码输入(这可能也是一直存在的问题)。

答案 1 :(得分:0)

参数似乎是个问题。您正在尝试设置受保护的参数。请尝试仅发送以下参数。

.write

确保您已在[:name, :email, :password, :password_confirmation, :mobile ]

中允许上述参数

添加用户后,如果您的用户模型中有Admin::UsersController,则必须确认该用户。您可以在创建:confirmable对象后在Admin::UsersController中执行此操作。

user