Ruby on rails 使用rails如何将CSV导入mongodb
我正在尝试使用RubyonRails将CSV文件导入我的Ruby on rails 使用rails如何将CSV导入mongodb,ruby-on-rails,mongodb,Ruby On Rails,Mongodb,我正在尝试使用RubyonRails将CSV文件导入我的mongodb。 我知道如何从shell/terminal执行此操作,但不知道如何从Rails执行此操作作为示例,您可以将所有值存储为字符串,因此您只需读取CSV文件,MongoDB将在对象中动态创建所有需要的属性,这些属性应表示给定CSV文件的每个文件行: class StoredCSV include Mongoid::Document include Mongoid::Timestamps def self.import
mongodb
。
我知道如何从shell/terminal执行此操作,但不知道如何从Rails执行此操作作为示例,您可以将所有值存储为字符串,因此您只需读取CSV文件,MongoDB将在对象中动态创建所有需要的属性,这些属性应表示给定CSV文件的每个文件行:
class StoredCSV
include Mongoid::Document
include Mongoid::Timestamps
def self.import!(file_path)
columns = []
instances = []
CSV.foreach(file_path) do |row|
if columns.empty?
# We dont want attributes with whitespaces
columns = row.collect { |c| c.downcase.gsub(' ', '_') }
next
end
instances << create!(build_attributes(row, columns))
end
instances
end
private
def self.build_attributes(row, columns)
attrs = {}
columns.each_with_index do |column, index|
attrs[column] = row[index]
end
attrs
end
end
请给出一些细节,你尝试了。告诉我们你在命令行上使用的命令,你在Rails中尝试过的,以及你可能得到的任何错误消息。如果下面的答案已经解决了你的问题,请点击检查标记来考虑。这向更广泛的社区表明,你已经找到了一个解决方案,并给回答者和你自己带来了一些声誉。没有义务这样做。
StoredCSV.import!('data.csv')
stored_data = StoredCSV.all