Ruby on rails 3 将记录导出到CSV
我在Rails 3.0.10应用程序中有一个Posts表。我想让我的用户选择将特定的Post记录导出为CSV格式,而不是全部。虽然我的Post表有很多字段,但我只想导出标题和正文 在进行一些搜索之后,显然最好的方法是通过FasterCSV。显然,它已经内置在Ruby 1.9.2中,我正在使用它。问题是,几乎所有的教程都过时了(来自Rails 1或2),我完全不知道如何做到这一点 我已经试着在我的帖子中添加了\u controller.rbRuby on rails 3 将记录导出到CSV,ruby-on-rails-3,csv,export-to-csv,Ruby On Rails 3,Csv,Export To Csv,我在Rails 3.0.10应用程序中有一个Posts表。我想让我的用户选择将特定的Post记录导出为CSV格式,而不是全部。虽然我的Post表有很多字段,但我只想导出标题和正文 在进行一些搜索之后,显然最好的方法是通过FasterCSV。显然,它已经内置在Ruby 1.9.2中,我正在使用它。问题是,几乎所有的教程都过时了(来自Rails 1或2),我完全不知道如何做到这一点 我已经试着在我的帖子中添加了\u controller.rb def export_to_csv @post =
def export_to_csv
@post = Post.find(params[:id])
csv_string = CSV.generate do |csv|
csv << [@post.title, @post.body]
end
# send it to the browsah
send_data csv_string,
:type => 'text/csv; charset=iso-8859-1; header=present',
:disposition => "attachment; filename=post.csv"
end
def导出到csv
@post=post.find(参数[:id])
csv_string=csv.generate do|csv|
csv的文本/csv;字符集=iso-8859-1;标题=当前',
:disposition=>“附件;文件名=post.csv”
结束
我认为这可能是正确的代码,但在我看来,我不知道如何使用它。理想情况下,我希望有一个链接来导出CSV文件,但我认为这必须通过一个form_标签来完成
如果有人能给我指出正确的方向,我将不胜感激。谢谢。经过几个小时的谷歌搜索和实验,我找到了答案 1.)安装此gem: 2.)将
respond_to do | format | format.csv
添加到要转换为csv的操作中(在我的例子中,posts_控制器的def show
部分)
3.)创建一个action.csv.csvbuilder文件(在我的例子中是show.csv.csvbuilder)并添加您需要的数据(在我的例子中是add
csv),这个链接可以帮助您在另一个小时的搜索和实验后找到它。我会尽快发布解决方案。