Ruby on rails 使用rails如何将CSV导入mongodb

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

我正在尝试使用RubyonRails将CSV文件导入我的
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