我有兩個模型,File
和Download
。在同一頁面加載中,我想要閱讀File
(將其提供給用戶)並創建一個Download
。在一個頁面加載中執行兩個寧靜的行爲
我既可以做:
GET /file/:id
PUT /file/:id/download
- 2重定向到1
是否有處理這種情況的正確道路?
我有兩個模型,File
和Download
。在同一頁面加載中,我想要閱讀File
(將其提供給用戶)並創建一個Download
。在一個頁面加載中執行兩個寧靜的行爲
我既可以做:
GET /file/:id
PUT /file/:id/download
是否有處理這種情況的正確道路?
我懷疑你所需要的只是你的文件控制器上的after_filter
。沿線的東西:
after_filter :log_download, :only => :show
protected
def log_download
# code to log a download after the show action
end
這比試圖鏈接在一起請求相同的效果要簡單得多。
我沒有在尋找實現細節,我只是想知道哪一個更好根據REST設計模式。 – 2012-08-07 22:41:16
讓你的文件下載鏈接指向一個:下載操作,此時您可以登錄下載然後渲染你的文件:
def download
DownloadLog.create(...)
render :file => ......
end
'創建一個下載' - 你的意思是加載一個文件的響應,這是下載?另外,當你說你想要2個響應 - 一個響應是顯示的文件和屏幕,一個是下載?有點混亂。 – 2012-08-07 21:04:56
我保留所有下載的日誌,因此創建下載意味着創建下載日誌記錄。我不想要兩個響應,但我想要對兩個資源採取行動 - 讀取一個文件,並創建一個下載記錄。 – 2012-08-07 21:15:03