你必須很努力

Day15 - 匯出(下載) PDF

2021/09/28
字數統計: 262閱讀時間: 1 min

前言

使用者在操作頁面或輸入網址後,要下載檔案(不局限於 PDF 檔案),可以使用 Ruby on Rails 內建的 send_file 來處理

實作

下載的檔案不局限於 PDF 檔,可參考此 pr

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
# config/routes.rb

resources :shops do
collection do
get :download_pdf
end
end



---



# app/controllers/shops_controller.rb

def download_pdf
pdf_path = Rails.root.join('data/river_demo_pdf.pdf')

send_file pdf_path
end



---



# spec/requests/shops_spec.rb

describe "GET /download_pdf" do
subject { get download_pdf_shops_path, params: { format: :text } }

it "send correct file" do
allow_any_instance_of(ShopsController).to receive(:send_file).with(Rails.root.join('data/river_demo_pdf.pdf'))
subject
end
end

實際畫面

小結

一開始不知道時,會想說該如何實作,才能讓使用者可以下載檔案,後來發現 Ruby on Rails 已經幫我們做了許多事情,讓我們在實作上,可以簡單幾行便實現該功能,真的非常快速又方便~

參考資料

  1. apidock#send_file

鐵人賽文章連結:https://ithelp.ithome.com.tw/articles/10271932
medium 文章連結:https://link.medium.com/91hPYYFVPjb
本文同步發布於 小菜的 Blog https://riverye.com/

備註:之後文章修改更新,以個人部落格為主

原文連結:https://riverye.com/2021/09/28/Day15-匯出-下載-PDF/

發表日期:2021-09-28

更新日期:2021-09-25

CATALOG
  1. 1. 前言
  2. 2. 實作
    1. 2.1. 實際畫面
  3. 3. 小結
  4. 4. 參考資料