2012-08-31 55 views
2

我發送一封電子郵件,鏈接到一個可下載的小冊子。Ruby on Rails的:如何下載使用由send_file文件,仍顯示視圖

這裏是我的下載操作

def download 
    @thing = Thing.find_using_slug(params[:id]) 

    send_file @thing.brochure.path, 
     :type => 'application/pdf', 
     :filename => "#{@thing.name}_brochure.pdf" 
end 

當用戶點擊從電子郵件啓動下載,然後他們會留下一個空白屏幕的鏈接。我想呈現着陸頁並仍然發送該文件。

回答

0

這可能是在電子郵件中的鏈接指向的登陸頁面的動作,也許有點像?dl查詢字符串附加一個更好的主意。

登錄頁面操作可能會有條件地檢查params.include?(:dl),如果找到,請將類似於以下內容的Javascript追加到登錄頁面HTML的<head>

window.onload = function() { 
    setTimeout(function() { 
    window.location = 'URL TO DOWNLOAD ACTION HERE'; 
    }, 2000); 
} 

這將會是在情況下,用戶禁用Javascript,或者不想要好的做法,也提供了一個鏈接着陸頁(再次,在?dl查詢字符串的存在條件)等待2秒鐘進行重定向。