使用两列的组合上传 excel 数据?

Upload excel data using a combination of two columns?

我有一个 excel sheet 格式如下:

成员可以在相应的memberstable中有多个条目。从excel模板上传数据时,我想find_bypin以及end_date以便在上传过程中更新特定记录。

我正在使用 gem roo 导入 excel 数据,这是我的 load_imported_members 方法:

def load_imported_members
    spreadsheet = open_spreadsheet
    spreadsheet.default_sheet = 'Worksheet'
    header = spreadsheet.row(1)
    (2..spreadsheet.last_row).map do |i|
      row = Hash[[header, spreadsheet.row(i)].transpose]
      member = Member.find_by_pin(row["pin"]) || Member.new
      member.attributes = row.to_hash.slice("id", "name", "pin", "end_date", "email")
      member
    end
  end

我估计如果我在find_by方法中同时使用pinend_date,我会更新特定的记录,因为[=35中可能有两个条目=],但必须有一个 end_date。我怎样才能做到这一点?谢谢

如果您想一次只查找一条​​记录,您可以使用带有散列的 find_by() 来搜索多列,如下所示:

Member.find_by(pin:row["pin"],end_date: row["end_date"])

find_by更多解释here

如果您想检索与您的搜索相匹配的多条记录,您需要在成员 class 上使用 where() 函数,而不是 find_by()

where更多解释here