私はindex.html.erb
そう見える:
ユーザーが「適用」ボタンを押すと、すべての日付をテーブルから csv ファイルにエクスポート (および保存) します。
reports_controller.rb
次の行で次のように定義しました。
require 'csv'
そして、ajaxによってすべてのパラメーターをコントローラーに渡しました(関数の更新に)。
今:
start_day =ユーザーが選択した開始日
.
.
.
end_year =ユーザーが選択した最終年
私の更新機能で、csvファイルを作成しようとしました。2 つの日付の間でテーブルを検索するために、start_date と end_date という 2 つの変数を作成しました。
start_date = YYYY-MM-DD (ただし、YYYY は start_year、MM は start_month、DD は start_day です)。
end_date は start_date と似ています (ただし、end_year、end_month、および end_day があります)
これは私の更新機能です:
def update
@start_day = params[:start_day]
@start_month = params[:start_month]
@start_year = params[:start_year]
@end_day = params[:end_day]
@end_month = params[:end_month]
@end_year = params[:end_year]
# the format of start_date and end_date will be: "YYYY-MM-DD"
@start_date = @start_year + "-" + @start_month + "-" + @start_day
@end_date = @end_year + "-" + @end_month + "-" + @end_day
# get all the transactions between start_date to end_date
@transactions = BillingTransaction.find(:all, :conditions =>["date(created_at) BETWEEN ? AND ? ", @start_date, @end_date])
# create the csv file
csv_string = CSV.generate do |csv|
# insert the headers
csv << ["transaction_type", "payment_method"]
# run all over the transactions
@transactions.each do |user|
# each of transactions is inserted into the csv file
csv << [BillingTransaction.transaction_type, BillingTransaction.payment_method]
end
end
# save it as 'BillingTransaction.csv'
send_data csv_string,
:type => 'text/csv; charset=iso-8859-1; header=present',
:disposition => "attachment; filename=BillingTransaction.csv"
end