在我的开发和测试环境中,我想用一大堆用户种数据库.我在使用
Ruby on Rails v3.2.8和最新的Devise.所以我把这行添加到我的db / seeds.rb文件中:
User.create(email: 'test@example.com',encrypted_password: '#$taawktljasktlw4aaglj')
但是,当我运行rake db:setup,我得到以下错误:
rake aborted! Can’t mass-assign protected attributes:
encrypted_password
解决方法
你必须这样做:
user = User.new user.email = 'test@example.com' user.encrypted_password = '#$taawktljasktlw4aaglj' user.save!
阅读本指南了解什么是质量分配:http://guides.rubyonrails.org/security.html
我想知道为什么要直接设置加密的密码.你可以这样做:
user.password = 'valid_password' user.password_confirmation = 'valid_password'