Ruby on rails 3 Can';t由于';管理员';领域
使用designe,我创建了用户模型,后来我使用迁移将带有Ruby on rails 3 Can';t由于';管理员';领域,ruby-on-rails-3,devise,admin,Ruby On Rails 3,Devise,Admin,使用designe,我创建了用户模型,后来我使用迁移将带有default=>false的:admin字段添加到我的模型中。 现在我需要手动创建一个管理员用户,因此在rails控制台中我尝试了: superadmin=User.create({:email=>'email@mail.com“,:password=>12345678”,:admin=>true}) 但得到以下错误: ActiveModel::MassAssignmentSecurity::错误:无法批量分配受保护的属性:admin
default=>false的:admin字段添加到我的模型中。
现在我需要手动创建一个管理员用户,因此在rails控制台中我尝试了:
superadmin=User.create({:email=>'email@mail.com“,:password=>12345678”,:admin=>true})
但得到以下错误:
ActiveModel::MassAssignmentSecurity::错误:无法批量分配受保护的属性:admin
从/var/lib/gems/1.9.1/gems/activemodel-3.2.13/lib/active\u model/mass\u assignment\u security/sanitizer.rb:48:inprocess\u removed\u attributes'
从/var/lib/gems/1.9.1/gems/activemodel-3.2.13/lib/active\u model/mass\u assignment\u security/sanitizer.rb:20:in
debug\u protected\u attribute\u remove'
来自/var/lib/gems/1.9.1/gems/activemodel-3.2.13/lib/active\u model/mass\u assignment\u security/sanitizer.rb:12:insanitize'
从/var/lib/gems/1.9.1/gems/activemodel-3.2.13/lib/active\u model/mass\u assignment\u security.rb:230:in
sanitize\u for\u mass\u assignment'
从/var/lib/gems/1.9.1/gems/activerecord-3.2.13/lib/active\u record/attribute\u assignment.rb:75:inassign\u attributes'
from/var/lib/gems/1.9.1/gems/activerecord-3.2.13/lib/active_record/base.rb:498:in
initialize'
from/var/lib/gems/1.9.1/gems/designe-2.2.4/lib/designe/models/confirmable.rb:46:ininitialize'
from/var/lib/gems/1.9.1/gems/activerecord-3.2.13/lib/active\u record/persistence.rb:44:in
new'
from/var/lib/gems/1.9.1/gems/activerecord-3.2.13/lib/active\u record/persistence.rb:44:increate'
来自(irb):4
从/var/lib/gems/1.9.1/gems/railties-3.2.13/lib/rails/commands/console.rb:47:in
start'
从/var/lib/gems/1.9.1/gems/railties-3.2.13/lib/rails/commands/console.rb:8:instart'
from/var/lib/gems/1.9.1/gems/railties-3.2.13/lib/rails/commands.rb:41:in
'
从脚本/rails:6:inrequire'
从脚本/rails:6:in
'
那么,还有其他手动创建用户的方法吗?(使用命令)您试图将值分配给admin
,但分配当前无法访问该值。要解决此问题,您需要声明admin
属性:
#app/models/user.rb
类用户
这将使您能够以所描述的精确方式创建新用户。另一个错误:SyntaxError:(irb):30:语法错误,意外的“:”,预期的“}”
看起来它只接受:电子邮件和:密码您试图在Rails控制台中输入什么?另外,您确定您在Rails控制台中吗?您的错误表明您处于irb
。创建一个非管理员用户,然后在可能的情况下更改属性如何?有什么方法可以改变一个特定的方法吗?这并不是你应该做的一个解决方法。修复应该很容易。您如何尝试在控制台中创建新用户?尝试User.create(:email=>'email@mail.com“,:password=>12345678',:admin=>true)
# app/models/user.rb
class User < ActiveRecord::Base
attr_accessible :admin
end