Ошибка типа: неявное преобразование Ха sh в целое число - PullRequest
1 голос
/ 25 марта 2020

это настройка моих переменных и создание ха sh Затем я пытаюсь создать пользователей из json объектов и жестко закодировать пароль, но я вернул ошибку. Я получаю TypeError: нет неявного преобразования Ha sh в Integer, и я не совсем уверен, почему jsonfile не содержит пароль, и я должен жестко написать один для каждого пользователя

require 'json'
encrypted_password = '#$taawktljasktlw4aaglj'
file = File.read('db/people.json')
data_hash = JSON.parse(file)
records = JSON.parse(File.read('db/people.json'))

records.each do |record|
    records['encrypted_password' => encrypted_password]
    user = User.create!(record.except('logins'))
    user.logins.create(record['logins'])
end



1 Ответ

1 голос
/ 02 апреля 2020

Вместо непосредственной установки encrypted_password, установите вместо нее password и password_confirmation и позвольте Devise выполнять шифрование. Таким образом, ваши пользователи получат пароль по умолчанию, который вы установили. Ваш код теперь должен выглядеть следующим образом:

require 'json'
password = 'temporary_password'
file = File.read('db/people.json')
data_hash = JSON.parse(file)
records = JSON.parse(File.read('db/people.json'))

records.each do |record|
    record['password'] = password
    record['password_confirmation'] = password
    user = User.create!(record.except('logins'))
    user.logins.create(record['logins'])
end
...