Если вы можете сохранить электронную таблицу как CSV, то для анализа CSV-файлов будет гораздо лучше, чем для анализа электронных таблиц Excel.Я обнаружил, что эффективный способ решения этой проблемы состоит в том, чтобы создать задачу rake, которая читает файл CSV и создает все соответствующие записи.
Так, например, вот как прочитать все строки из файлаиспользование старого, но все еще действующего FasterCSV gem
data = FasterCSV.read('lib/tasks/data.csv')
columns = data.remove(0)
unique_column_index = -1#The index of a column that's always unique per row in the spreadsheet
data.each do | row |
r = Record.find_or_initialize_by_unique_column(row[unique_column_index])
columns.each_with_index do | index, column_name |
r[column_name] = row[index]
end
r.save! rescue => e Rails.logger.error("Failed to save #{r.inspect}")
end
Это действительно зависит от наличия уникального столбца в исходной электронной таблице.
Есливы помещаете это в задачу rake, затем можете подключить его к вашему сценарию развертывания Capistrano, так что он будет запускаться каждый раз при развертывании.find_or_initialize должен гарантировать, что вы не должны получать дубликаты записей.