从excel重新创建devise用户表

时间:2018-10-23 14:25:02

标签: ruby-on-rails excel devise

我希望将数据库表放在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导入的加密密码(因此它不是空白)。

有什么想法吗?

0 个答案:

没有答案