Я реализую импорт файла csv из внешнего конца с использованием ruby в mysql. это мой код контроллераИмпорт данных Mysql с использованием Ruby
require 'csv' def csv_import @parsed_file=CSV::Reader.parse(params[:dump][:file]) n=0 @parsed_file.each do |row| c=CustomerInformation.new c.job_title=row[1] c.first_name=row[2] c.last_name=row[3] if c.save n=n+1 GC.start if n%50==0 end flash.now[:message]="CSV Import Successful, #{n} new records added to data base" end
Это мой передний конец кода.
<pre>
<% form_for :dump, :url=>{:controller=>"customer_informations", :action=>"csv_import"}, :html => { :multipart => true } do |f| -%>
<table">
<tr>
<td>
<label for="dump_file">
Select a CSV File :
</label>
</td>
<td >
<%= f.file_field :file -%>
</td>
</tr>
<tr>
<td colspan='2'>
<%= submit_tag 'Submit' -%>
</td>
</tr>
</table>
<% end -%>
</pre>
Теперь то, что я хочу, у меня есть около 30 столбцов в БД, то CSV будет содержать 30 заголовков столбцов. Кроме того, для проверки я буду запрашивать один из столбцов в качестве ввода с использованием текстового поля, так что в столбце csv будет 29 столбцов. В соответствии с опцией, выбранной пользователем, доза 29 столбцов присоединяется к выбранному объекту из текстового поля.
Любая помощь будет оценена по достоинству.
Спасибо
поэтому, если я не укажу ни один столбец в файле, он не будет вставлять данные в столбце dat в db., ?? – Rockr
Извините, я вообще не понимаю этого предложения. – pguardiario
Я имел в виду, что у меня есть 30 столбцов в моей базе данных. если я сделаю только 29 столбцов в моем файле excel с заголовками столбцов, будет ли он настраиваться и помещать данные в соответствии с заголовком столбца.? – Rockr