2012-08-07 45 views
0

我有兩個模型,FileDownload。在同一頁面加載中,我想要閱讀File(將其提供給用戶)並創建一個Download在一個頁面加載中執行兩個寧靜的行爲

我既可以做:

  1. GET /file/:id
  2. PUT /file/:id/download
  3. 2重定向到1

是否有處理這種情況的正確道路?

+0

'創建一個下載' - 你的意思是加載一個文件的響應,這是下載?另外,當你說你想要2個響應 - 一個響應是顯示的文件和屏幕,一個是下載?有點混亂。 – 2012-08-07 21:04:56

+0

我保留所有下載的日誌,因此創建下載意味着創建下載日誌記錄。我不想要兩個響應,但我想要對兩個資源採取行動 - 讀取一個文件,並創建一個下載記錄。 – 2012-08-07 21:15:03

回答

0

我懷疑你所需要的只是你的文件控制器上的after_filter。沿線的東西:

after_filter :log_download, :only => :show 

    protected 
    def log_download 
    # code to log a download after the show action 
    end 

這比試圖鏈接在一起請求相同的效果要簡單得多。

+0

我沒有在尋找實現細節,我只是想知道哪一個更好根據REST設計模式。 – 2012-08-07 22:41:16

0

讓你的文件下載鏈接指向一個:下載操作,此時您可以登錄下載然後渲染你的文件:

def download 
    DownloadLog.create(...) 
    render :file => ...... 
end 
相關問題