我希望将数据库表放在excel中作为备份,以便能够从头开始重新设置数据库。
到目前为止,除了设计用户模型之外,其他所有东西都可以正常工作。
代码如下:
*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导入的我加密密码(因此它不是空白)。
有什么想法吗?