У меня есть лист Excel, который имеет следующий формат:
Члены могут иметь несколько записей в соответствующей таблице members
. При загрузке данных из шаблона Excel, я хотел бы find_by
pin
, а также 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
Я считаю, что если я использую и pin
, и end_date
в методе find_by
, я обновлю конкретную запись, так как можетбыть две записи в таблице, но один должен иметь end_date
. Как мне этого добиться? Спасибо