2

ダウンロード可能なパンフレットへのリンクを記載したメールを送信しています。

これが私のダウンロードアクションです

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

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

ユーザーが電子メールのリンクをクリックすると、ダウンロードが開始され、空白の画面が表示されます。ランディングページをレンダリングしてファイルを送信したいのですが。

4

1 に答える 1

0

?dl電子メール内のリンクが、おそらくクエリ文字列のようなものを追加して、ランディングページのアクションを指すようにすることをお勧めします。

ランディングページアクションは条件付きでをチェックし、見つかった場合は、ランディングページのHTMLにparams.include?(:dl)次のようなJavascriptを追加します。<head>

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

ユーザーがJavascriptを無効にしている場合、またはリダイレクトを2秒間待ちたくない場合に備えて、ランディングページにもリンクを提供することをお勧めします(ここでも、クエリ文字列の存在を条件とします)。?dl

于 2012-08-31T15:01:51.953 に答える