在我的seed文件中,我这样做是为了seed文件将为其中的模型adminuser生成数据。该模型有“password\u digest”列,用于存储散列密码(使用bcrypt)。我从一个json文件中获取表的数据,我对seed文件进行解析,使其成为mysql数据库的种子。问题是,密码设定不正确,我遇到以下错误:
activerecord::recordinvalid:验证失败:密码不能为空,密码太短(最少6个字符)
种子.rb
adminuser = JSON.parse(File.read(Rails.root.join("export-admin_user.json")))
adminuser.each do |admin|
Adminuser.create!(admin)
end
export-admin\u user.json文件
[
{
"id":6,
"username":"admin",
"password_digest":"$2a$10$Z0tK32wRaoO4SmWl4D8vKObpaUgobb.WwS2T3mr64eZdK48/oybRm",
"email":"sample_email1@gmail.com",
"first_name":"admin",
"last_name":"admin",
"email_confirmed":true,
"confirm_token":null,
"created_at":"2018-03-13T02:14:34.000Z",
"updated_at":"2018-03-13T02:14:34.000Z",
"admin_type":"admin"
},
{"id":7,
"username":"registrar",
"password_digest":"$2a$10$hX4IlT.mn1W8fwLQ7t4JYOEz0xwuK7W1Kp655Q3doQfd08c8/ZoKm",
"email":"sample_email2@gmail.com",
"first_name":"registrar",
"last_name":"registrar",
"email_confirmed":true,
"confirm_token":"9WhkWPT5Hhuhkimwb-F_hQ",
"created_at":"2018-04-03T02:31:49.000Z",
"updated_at":"2018-04-03T02:31:49.000Z",
"admin_type":"registrar"
}
]
我不明白为什么会发生这种错误。通过使用.sql文件导入表的数据是可行的,那么为什么这种播种数据的方法不起作用呢?
1条答案
按热度按时间2ekbmq321#
根据sajin给出的评论,我只需要在创建记录时跳过验证。
当我替换时,种子起了作用:
使用: