Ruby on rails Can';t质量分配受保护的属性:已确认

Ruby on rails Can';t质量分配受保护的属性:已确认,ruby-on-rails,devise,Ruby On Rails,Devise,我正在用rails中的Desive身份验证创建一个演示应用程序 我面临着这个错误 rake aborted! Can't mass-assign protected attributes: confirmed_at 我的User.rb类是 class User < ActiveRecord::Base # Include default devise modules. Others available are: # :token_authenticatable, :confirm

我正在用rails中的Desive身份验证创建一个演示应用程序

我面临着这个错误

rake aborted!
Can't mass-assign protected attributes: confirmed_at
我的User.rb类是

class User < ActiveRecord::Base
  # Include default devise modules. Others available are:
  # :token_authenticatable, :confirmable,
  # :lockable, :timeoutable and :omniauthable
  devise :database_authenticatable, :registerable,
         :recoverable, :rememberable, :trackable, :validatable

  # Setup accessible (or protected) attributes for your model
  attr_accessible :name, :email, :password, :password_confirmation, :remember_me
  # attr_accessible :title, :body

validates_presence_of :name
validates_uniqueness_of :name, :email, :case_sensitive => false
end
class用户false的唯一性
结束
我的db.seed.rb文件代码是

# This file should contain all the record creation needed to seed the database with its default values.
# The data can then be loaded with the rake db:seed (or created alongside the db with db:setup).
#
# Examples:
#
#   cities = City.create([{ name: 'Chicago' }, { name: 'Copenhagen' }])
#   Mayor.create(name: 'Emanuel', city: cities.first)

puts 'SETTING UP DEFAULT USER LOGIN'
user = User.create! :name => 'First User', :email => 'user@example.com', :password => 'please', :password_confirmation => 'please', :confirmed_at => DateTime.now
user2 = User.create! :name => 'Second User', :email => 'user2@example.com', :password => 'please', :password_confirmation => 'please', :confirmed_at => DateTime.now
puts 'New user created: ' << user.name
#此文件应包含为数据库添加默认值所需的所有记录创建。
#然后可以使用rake db:seed加载数据(或者使用db:setup与db一起创建)。
#
#示例:
#
#cities=City.create([{name:'Chicago'},{name:'哥本哈根'}]))
#市长。创建(名字:“伊曼纽尔”,城市:城市。第一)
放置“设置默认用户登录”
user=user.create!:名称=>'第一个用户',:电子邮件=>'user@example.com“,:password=>'please',:password\u confirmation=>'please',:confirmation\u at=>DateTime.now
user2=User.create!:姓名=>'第二个用户',:电子邮件=>'user2@example.com“,:password=>'please',:password\u confirmation=>'please',:confirmation\u at=>DateTime.now

将“新用户已创建:”在创建用户时,您实际上不必在
处设置
confirm\u,而是可以调用
confirm后,您就完成了,这更好,因为调用
确认除了在
处设置
confirmative\u外,还做了许多其他事情

user = User.create! :name => 'First User', :email => 'user@example.com', :password => 'please', :password_confirmation => 'please'
user.confirm!
您可以使用:

Model.create!(fieldsValues, :without_protection => true) 
就你而言:

User.create!({:name => 'First User', :email => 'user@example.com', :password => 'please', :password_confirmation => 'please', :confirmed_at => DateTime.now}, :without_protection => true)

无保护
将允许您设置受保护字段的值

您可以使用上述两个答案中的任意一个,或在application.rb中禁用保护,以设置白名单属性false,如:

config.active_record.whitelist_attributes = false

而且,您可以将confirm_at添加为attr_accessible,但不需要设置confirm_at来创建Ahmad Sherif提到的新用户。

请帮助我如何删除此错误