Я хочу использовать в качестве резервной копии таблицы базы данных в Excel, чтобы иметь возможность заново заполнять базу данных с нуля.
Пока все работает нормально, кроме модели devise users.
Код выглядит следующим образом:
*users.rb*
def self.import(file)
spreadsheet = Roo::Spreadsheet.open(file.path)
header = spreadsheet.sheet(0).row(1) #sheet(0) is the first sheet
(2..spreadsheet.sheet(0).last_row).each do |i|
row = Hash[[header, spreadsheet.sheet(0).row(i)].transpose]
user = find_by(fullname: row["Fullname"]) || new
user.update_fields(row)
end
end
def update_fields(fields)
self.fullname = fields["Fullname"]
self.email = fields["Εmail"]
self.role = fields["Role"]
self.encrypted_password = fields["Enc. Password"]
self.reset_password_token = fields["Password Token"]
self.confirmed_at = fields["Confirm. Date"]
self.confirmation_sent_at = fields["Confirm. SentAt"]
self.confirmation_token = fields["Confirm. Token"]
self.save!
end
При выполнении сохранения появляется ошибка отката, что пароль не может быть пустым.Я запутался, потому что в базе данных, похоже, нет пароля.То, что кажется сохраненным, - это зашифрованный пароль, который Я импортирую из Excel (поэтому он не пуст).
Есть идеи?