3
私のRailsアプリケーションでは、モデルメソッドでCSV.openブロックを使用してCSVファイルを作成します。私のコントローラで自己生成されたcsvファイルを保存せずにメールで送信するにはどうすればいいですか?
class SomeModel
def self.write_csv
CSV.open("my_file_name.csv", "w") do |csv|
### inserts lines into the file ###
end
end
end
、私はJobMailer
では、ユーザの入力したメールアドレス
def some_controller_method
SomeModel.write_csv
email = params[:email]
JobMailer.send_csv(email).deliver
end
にファイルを送信し、アクションを持って、私は、直接ファイル名でファイルを参照するためCSV.open
ブロックからSomeModel.write_csv
は、メインディレクトリのディスクにファイルを保存します。
def send_csv(email)
attachments['my_file_name.csv'] = {mime_type: 'text/csv', content: File.read(Rails.root.join('your_file.csv'))}
mail(to: email, subject: 'My subject', body: 'My body.')
end
現在、新しいリクエストが来たときにアプリがファイルの上に書き直します、と私はHerokuの上の生産にプッシュするとき、それは自動的にいくつかの時間後にそれを削除します信じています。要約すると
:
- ファイル
を削除メーラー
を生成するCSV番号を使用できますか? –