我正在尝试使用活动管理员创建用户。我正在从头开始进行认证。目前,我已经使用以下命令设置了资源:
rails g resource user name:string username:string password_digest:string
然后,我的用户模型如下所示:
class User < ActiveRecord::Base
has_secure_password
attr_accessible :name, :password, :username
validates_uniqueness_of :name
validates_uniqueness_of :username
end
在大多数情况下都跟着逐字逐句地跟随。然后,我使用以下代码添加了活动的管理资源:
rails g active_admin:resource user
我的用户活动管理模型如下所示:
ActiveAdmin.register User do
index do
# column "number", :id
column :name
column :username
column :password
default_actions
end
show do
attributes_table do
row :name
row :username
row :password
end
end
end
当我创建用户时,出现以下错误消息:
Can't mass-assign protected attributes: password_digest
我知道has_secure_password和bcrypt-ruby会为您更改密码等。但是我收到此错误。
如何在这里使用活动管理员创建有效用户?
我不确定您所指的railscast的详细信息,但是一种常见的存储密码的方法是存储一个加密的摘要,而不是实际的密码,这样,访问您数据库的人将不会拥有您的实际密码。用户。密码实际上并未保存。这是一种可行的方法:
# models/user.rb
def password= new_password
self.password_digest = ::BCrypt::Password.create(new_password,cost:10).to_s
end
这样,将在验证之前设置password_digest,这样它将通过。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句