52 lines
934 B
Ruby
52 lines
934 B
Ruby
module ActsAsCsvImport::Hook
|
|
def acts_as_csv_import(*args)
|
|
@csv_options = args.extract_options!
|
|
|
|
|
|
|
|
def self.import_csv_fields
|
|
@csv_options[:fields]
|
|
end
|
|
|
|
def self.import_csv(list, import_csv, m_odr_id=nil)
|
|
puts self.instance_methods
|
|
|
|
if self.methods.include?(:custom_csv_import)
|
|
custom_csv_import(list, import_csv, m_odr_id)
|
|
else
|
|
default_import_csv(list, import_csv, m_odr_id)
|
|
end
|
|
|
|
end
|
|
|
|
def self.default_import_csv(list, import_csv, m_odr_id=nil)
|
|
list.each do |row|
|
|
n = self.new
|
|
|
|
n.m_odr_id = m_odr_id if m_odr_id
|
|
|
|
row.each do |key, value|
|
|
eval "n.#{key} = value"
|
|
|
|
|
|
end
|
|
|
|
if n.save
|
|
else
|
|
puts n.errors.messages
|
|
end
|
|
|
|
import_csv.import_csv_elements << ImportCsvElement.new(:element => n)
|
|
|
|
end
|
|
end
|
|
|
|
|
|
|
|
end
|
|
|
|
|
|
|
|
|
|
end
|