【发布时间】:2012-11-26 17:09:02
【问题描述】:
我正在使用 Ruby 1.9.2 和 Rails 3.2.1。
我想创建一个视图来上传 CSV 或制表符分隔的文件,并使用表格或分页显示在同一页面上显示文件的内容,然后在 JavaScript 中处理该数据。
我该怎么做?请带我浏览你拥有的任何代码示例,我也是 Ruby 的菜鸟。
【问题讨论】:
标签: ruby-on-rails ruby model-view-controller csv
我正在使用 Ruby 1.9.2 和 Rails 3.2.1。
我想创建一个视图来上传 CSV 或制表符分隔的文件,并使用表格或分页显示在同一页面上显示文件的内容,然后在 JavaScript 中处理该数据。
我该怎么做?请带我浏览你拥有的任何代码示例,我也是 Ruby 的菜鸟。
【问题讨论】:
标签: ruby-on-rails ruby model-view-controller csv
首先,编写一个视图来上传您的文件。您可以为此使用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 等 - 阅读有关如何完成所有这些操作的文档。
【讨论】:
只需使用漂亮的 Ruby gem 来解析 CSV 文件。这应该为您指明正确的方向。 http://fastercsv.rubyforge.org/
【讨论】: