使用Ruby导入Mysql数据



我正在使用ruby从前端将csv文件导入mysql。这是我的控制器代码

需要"csv"def csv_inport@parsed_file=CSV::Reader.parse(params[:dump][:file])n=0@parsed_file.each do|行|c=客户信息.newc.job_title=行[1]c.first_name=行[2]c.last_name=行[3]if c.saven=n+1GC.start,如果n%50==0终止flash.now[:message]="CSV导入成功,#{n}条新记录添加到数据库"终止

这是我的前端代码。

<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>

现在我想要的是,我在DB中有大约30列,csv将包含30个列标题。此外,为了进行检查,我将使用textfield询问其中一列作为输入,因此csv表中有29列。根据用户选择的选项,剂量29列与文本框中选择的实体相连。

如有任何帮助,我们将不胜感激。

感谢

如果使标题与表列相同,则代码应该简单到:

CSV::foreach(filename, :headers => true) do |row|
  Model.new(row.to_hash).save
end

最新更新