使用 Carrierwave 上傳單個檔案

在 Rails 中開始使用檔案上傳非常簡單,首先要做的是選擇外掛來管理上傳。最常見的是 CarrierwavePaperclip 。兩者在功能上相似,並且文件豐富

讓我們來看看帶有 Carrierwave 的簡單頭像上傳圖片的示例

bundle install Carrierwave 之後,輸入控制檯

$ rails generate uploader ProfileUploader

這將建立一個位於 /app/uploaders/profile_uploader.rb 的配置檔案 **

在這裡,你可以設定儲存(即本地或雲),應用影象處理擴充套件(即通過 MiniMagick 生成拇指)並設定伺服器端擴充套件白名單

接下來,使用字串 tipe 為 user_pic 建立新的遷移,並在 user.rb 模型中為其安裝上傳器。

mount_uploader :user_pic, ProfileUploader

接下來,顯示上傳頭像的表單(可能是使用者的編輯檢視)

<% form_for @user, html: { multipart: true } do |f| %>
    <%= f.file_field :user_pic, accept: 'image/png, image/jpg' %>
    <%= f.submit "update profile pic", class: "btn" %>
<% end %>

確保包含{multipart:true}以便訂單表格可以處理上傳。Accept 是可選的設定客戶端擴充套件白名單。

要顯示頭像,只需執行

<%= image_tag @user.user_pic.url %>