另一個上傳檔案的 gem ,相當的實用,和 Paperclip 擇一即可。
安裝
Gemfile
1 2 3 4 |
|
- carrierwave 上傳檔案
- rmagick 處理圖片
必須有安裝 ImageMagick 才能使用 rmagick
有 homebrew 可以直接
1
|
|
設定
先建立資料夾,主要用來存放所有的檔案
1
|
|
接著在在要存放的 model 新增一筆欄位
1
|
|
Model
1 2 3 |
|
最後記得再 strong params 加入
1 2 3 4 5 |
|
Form
1 2 3 4 |
|
view
1
|
|
imageurl是預設的helper,to_s是要確定把上傳的路徑轉變為字串,以免發生錯誤。
RMagick
app/uploaders/file_uploader.rb
可以將設定打開,有 RMagick 和 MiniMagick ,都是用來縮圖的。(擇一即可)
1 2 3 |
|
下面把註解拿掉就可以使用
1 2 3 4 |
|
之後再 view 中只要指定,就會去抓取縮小後的圖檔
1
|
|
其他
限制存取大小
How to: Validate attachment file size
存取圖片長寬
How to: Get image dimensions
存取圖片大小和類型
How to: Store the uploaded file size and content type
官方文件:
carrierwave
參考資料:
Ruby gem ‘Carrierwave’ 上傳檔案神器的簡易安裝與使用
使用 Carrierwave 處理檔案上傳 (整合 imagemagick 與 Amazon S3)
gem ‘carrierwave'简易实用介绍
Rails如何使用Carrierwave上傳圖片