2011-07-11 13 views
0

新規ユーザーのメールアドレスのCSVファイルをエクスポートしようとしています。初心者は、date_selectタグで選択された日付(基本的には最新のサインアップ)の後にユーザー "created_at"です。Rails date_selectを使用してCSVファイルを生成する

私はFasterCSV gemとScott Becker's codeを使用しています。hereから@start_dateを借りてメソッドに実装しました。

ここに私のコントローラは次のようになります。ここに私のnewbs.html.erbだ

def newbs_export 
    @start_date = Date.civil(params[:range][:"start_date(1i)"].to_i, params[:range][:"start_date(2i)"].to_i, params[:range][:"start_date(3i)"].to_i) 
    @users = User.find(:all, :if => [@created_at >= @start_date]) 

    csv_string = FasterCSV.generate do |csv| 
     # header row 
     csv << ["email"] 

     # data rows 
     @users.each do |user| 
     #if user[:created_at] >= Time.now 
     csv << [user.email] 
     end 

    end 

    # send it to the browsah 
    send_data csv_string, 
       :type => 'text/csv; charset=iso-8859-1; header=present', 
       :disposition => "attachment; filename=newbs.csv" 

    end 

<% form_tag({:controller => "accounts", :action => "newbs_export"}, :method => "get") do %> 
<%= date_select('range', 'start_date', :order => [:month, :day, :year])%> 
<%= submit_tag("Submit") %> 
<% end %> 

私は混合コードをしましたし、自分自身に異なるステッチしようとしている穴を少し掘っ一緒にソリューション。私がここからどこに行くことができるかに関するアドバイス?

ありがとうございます!

+0

あなたが得ているエラー/問題は何ですか? –

+0

申し訳ありません、ジョシュア...それは私にNilClassエラーを吐き出していました。しかし、Maranはそれを頭で打ちました。感謝します。 – Galen

答えて

0

私は変更して起動します:

@users = User.find(:all, :if => [@created_at >= @start_date]) 

rails3については
@users = User.where("created_at >= ?", @start_date) 

または

@users = User.find(:all, :conditions => ["created_at >= ?", @start_date]) 

にrails2

についてあなたが他のエラー/問題、あなたを投稿する場合私はwiを持っているこの回答を更新しようとします。

+0

美しく働いた、ありがとう! – Galen

関連する問題