0

私は現在、私が持っているデータからテーブルをエクスポートするためにivが使用したいくつかのコードを持っています

require 'fastercsv'
def dump_csv
  @users = User.find(:all, :order => "lastname ASC")
  @outfile = "members_" + Time.now.strftime("%m-%d-%Y") + ".csv"

  csv_data = FasterCSV.generate do |csv|
    csv << [
    "Last Name",
    "First Name",
    "Username",
    "Email",
    "Company",
    "Phone",
    "Fax",
    "Address",
    "City",
    "State",
    "Zip Code"
    ]
    @users.each do |user|
      csv << [
      user.lastname,
      user.firstname,
      user.username,
      user.email,
      user.company,
      user.phone,
      user.fax,
      user.address + " " + user.cb_addresstwo,
      user.city,
      user.state,
      user.zip
      ]
    end
  end

  send_data csv_data,
    :type => 'text/csv; charset=iso-8859-1; header=present',
    :disposition => "attachment; filename=#{@outfile}"

  flash[:notice] = "Export complete!"
end

私の質問は、私の見解からどのように呼び出すかであり、これは will_pagination で機能します。FasterCVS が ActiveRecord を使用してテーブルを作成することは知っているので、テーブルを整理するときに will_paginiation は役に立ちません。

4

2 に答える 2

0

ご協力いただきありがとうございます。あなたのリンクを見て、これを思いつきました:

@lists = Project.find(:all, :order=> (params[:sort] + ' ' + params[:direction]), :conditions =>  ["name || description  LIKE ?", "%#{params[:selection]}%"])

    csv_string = FasterCSV.generate do |csv|
      csv << ["Status","Name","Summary","Description","Creator","Comment","Contact Information","Created Date","Updated Date"]

      @lists.each do |project|
        csv << [project.status, project.name, project.summary, project.description, project.creator, project.statusreason, project.contactinfo, project.created_at, project.updated_at]
      end
    end

    filename = Time.now.strftime("%Y%m%d") + ".csv"
    send_data(csv_string,
      :type => 'text/csv; charset=utf-8; header=present',
      :filename => filename)
  end
于 2010-11-08T03:37:49.130 に答える
0

will_paginate について話している理由がわかりません...

しかし、コントローラからデータやファイルを送信したい場合は、メソッド send_data と send_file を確認する必要があります:

http://api.rubyonrails.org/classes/ActionController/Streaming.html

于 2010-11-03T10:51:43.540 に答える