Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ruby-on-rails-3/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails 3 Can';t由于';管理员';领域_Ruby On Rails 3_Devise_Admin - Fatal编程技术网

Ruby on rails 3 Can';t由于';管理员';领域

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

使用designe,我创建了用户模型,后来我使用迁移将带有
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:in
process\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:in
sanitize'
从/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:in
assign\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:in
initialize'
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:in
create'
来自(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:in
start'
from/var/lib/gems/1.9.1/gems/railties-3.2.13/lib/rails/commands.rb:41:in
' 从脚本/rails:6:in
require'
从脚本/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