私は2つのモデルを持っていFile
ますDownload
. 同じページの読み込みで、 を読み取りFile
(ユーザーに提供)、 を作成したいDownload
。
私はどちらかを行うことができます:
GET /file/:id
PUT /file/:id/download
- 2 を 1 にリダイレクト
このような状況を処理する正しい方法はありますか?
私は2つのモデルを持っていFile
ますDownload
. 同じページの読み込みで、 を読み取りFile
(ユーザーに提供)、 を作成したいDownload
。
私はどちらかを行うことができます:
GET /file/:id
PUT /file/:id/download
このような状況を処理する正しい方法はありますか?
ファイルのダウンロード リンクが :download アクションを指すようにします。ここで、ダウンロードをログに記録し、ファイルをレンダリングできます。
def download
DownloadLog.create(...)
render :file => ......
end
あなたが必要としているのはafter_filter
、あなたのファイルコントローラーにあるだけだと思います。次のようなもの:
after_filter :log_download, :only => :show
protected
def log_download
# code to log a download after the show action
end
これは、同じ効果のリクエストを連鎖させようとするよりもはるかに簡単です。