Rails上传包含标题的CSV文件

时间:2012-12-08 20:10:21

标签: ruby-on-rails ruby model-view-controller csv

我使用Ruby 1.9.2和Rails 3.2.1。

我想创建一个视图来上传CSV或制表符分隔文件,并使用表格或分页显示在同一页面上显示该文件的内容,然后用JavaScript处理该数据。

我该怎么做?请告诉我你的任何代码示例,我也是Ruby中的总菜鸟。

2 个答案:

答案 0 :(得分:0)

首先,写一个视图来上传你的文件。您可以使用Paperclip

假设您有资源Csv,您的上传表单可能如下所示:

<%= form_for @csv, :url => csv_path, :html => { :multipart => true } do |form| %>
  <%= form.file_field :attachment %>
<% end %>

你的模特:

class Csv < ActiveRecord::Base
  attr_accessible :attachment
  has_attached_file :attachment
end

您的控制器操作:

def create
  @csv = Csv.create( params[:csv] )
  # your save and redirect code here
end

def show
  @csv = Csv.find(params[:id])      
end

有了这个,你可以在你的视图中使用这样的东西:

CSV.foreach(@csv.attachment.path) do |row|
  # use the row here to generate html table rows
end

注意:这只是关于如何完成此操作的一般概念,您需要将资源添加到您的路由,安装和配置Paperclip gem等等 - 阅读有关如何完成所有操作的文档。

答案 1 :(得分:-1)

只需使用一个漂亮的Ruby gem来解析CSV文件。这应该指向正确的方向。 http://fastercsv.rubyforge.org/