Rails 3.0.10 アプリに Posts テーブルがあります。すべての投稿ではなく、特定の投稿レコードを CSV 形式でエクスポートするオプションをユーザーに提供したいと考えています。私の Post テーブルには多くのフィールドがありますが、タイトルと本文のみをエクスポートしたいと考えています。
いくつかの検索を行った後、明らかにこれを行う最良の方法は FasterCSV を使用することです。どうやら、私が使用している Ruby 1.9.2 で既にビルドされているようです。ほとんどすべてのチュートリアルが (Rails 1 または 2 から) 時代遅れであり、これを達成する方法がまったくわかりません。
posts_controller.rb を入れてみました
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
これは正しいコードかもしれないと思いますが、私の見解ではそれを使用する方法がわかりません。理想的には、CSV ファイルをエクスポートするためのリンクが必要ですが、form_tag を介して行う必要があると考えていますか?
誰かが私を正しい方向に向けることができれば幸いです。ありがとう。