5

Railsでこれを行うことが可能かどうか疑問に思っています:

ウェブページにリンクを張ってください。ユーザーがリンクをクリックすると、コントローラーが動的にファイル (たとえば、1 から 10 までの乱数を 1 つ含むテキスト ファイル) を生成し、そのファイルがユーザーのコンピューターにダウンロードされます。ファイルは一時的にサーバーに保存される場合がありますが、永続的に存在するべきではありません。

4

2 に答える 2

7

send_dataコントローラーで使用します。

send_data("4", :filename => "my_awesome_file")

サーバーに既にファイルがある場合は、send_file代わりに使用できます

send_file(filepath, :filename => "my_awesome_file")

http://api.rubyonrails.org/classes/ActionController/DataStreaming.html#method-i-send_data

于 2012-11-01T01:03:57.553 に答える
3

はい、可能です。これは、私のアプリの 1 つにあるものです。

class DownloadsController < ApplicationController

  def download
    # ...
    send_file CSVConstructor::Constructor.new(...).to_zip 
  end

end

このdownloadアクションは、フォームから送信されたパラメーターを受け取り、いくつかのファイルを生成して zip としてパッケージ化し、ファイル パスを返すカスタム クラスにそれらを送信します。独自のアプリ用にファイルを生成する最善の方法を見つける必要がありますが、同様の方法をお勧めします。機能を別のクラスに分岐すると、コントローラーを軽量に保つことができます。

于 2012-11-01T01:07:43.643 に答える