Ruby on rails Can';t质量分配受保护的属性:已确认
我正在用rails中的Desive身份验证创建一个演示应用程序 我面临着这个错误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
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在每个用户对象上执行code>后,您就完成了,这更好,因为调用确认代码>除了在
处设置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提到的新用户。请帮助我如何删除此错误