10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
|
# File 'lib/import_translations.rb', line 10
def load_from_csv(table_name, data)
column_clause = nil
= false
cnx = ActiveRecord::Base.connection
ActiveRecord::Base.silence do
reader = CSV::Reader.create(data)
columns = reader.shift.map {|column_name| cnx.quote_column_name(column_name) }
column_clause = columns.join(', ')
reader.each do |row|
next if row.first.nil?
raise "No table name defined" if !table_name
raise "No header defined" if !column_clause
values_clause = row.map {|v| cnx.quote(v).gsub('\\n', "\n").gsub('\\r', "\r") }.join(', ')
sql = "INSERT INTO #{table_name} (#{column_clause}) VALUES (#{values_clause})"
cnx.insert(sql)
end
end
end
|