rails5.2新特性--ActiveStorage, 使用80percent/rails-template
看guide,看ruby-China的好貼,看最新版的書上案例。
以下摘自https://ruby-china.org/topics/36666 作者lyfi2003
用戶對上傳文件的要求體驗:
- 上傳過程可預覽,可裁剪
- 上傳有進度
- 能直傳到雲端(例如又拍,七牛,阿裏等雲存儲)
ActiveStorage
- 直接支持直傳
- 默認支持雲端存儲
- 一鍵安裝
兩個問題,需要??:
- 遷移成本,Rails 5.1 升級時需要仔細調整,例如將
carrierwave
改為 ActiveStorage - ActiveStorage 與 ActionCable 類似,都是前後端緊急配合,並與 Rails 框架綁的非常深,對於一般工程師掌控它,並想有所定制並不太輕松。
5.2其他特點:
Bootsnap 技術應用,Rails 服務啟動速度節省 50%:
- 路徑預掃描
- 編譯過程緩存技術
Rails5.2其他改進
1.加密配置文件支持。
使用Credentials。通過master.key和credentials.yml.enc加密配置,可以將關鍵的配置直接加入到版本控制中,解決一些配置問題。比之前的備份方案先進一些。
2. Redis Cache Store內建支持(使用那個緩存存儲器由使用者決定。)
3. webpacker升級支持。 (方便rails內安裝前端的庫)
4. 增加HTTP/2的early hints特性。??這個不懂。
零成本開啟這個功能,讓rails在HTTP/2支持的瀏覽器中加載的更快。
5.內容安全策略Content Security Policy。??這個也不懂。
Rails 現在可以通過 DSL 語法定義內容安全策略,確保避免註入型漏洞,使得 Rails 應用更加安全。詳見 PR和內容安全策略解釋
總結:
5.2發布的核心就是完善上傳功能的內建支持,以及速度一項的改進,加載更快,啟動更快。
升級使用:rails app:update開始升級。
開全新的rails5.2 作者推薦中國玩家使用 80percent/rails-template,更快更好地調整好默認配置。
/rails-template
https://github.com/80percent/rails-template
gem source --add <url> --remove #選項add是增加一個url源,remove是去掉。
這裏使用
$ gem sources --add https://gems.ruby-china.org/ --remove https://rubygems.org/
結果使用gem sources --list查看。
增加網址:gem.ruby-china.org 到你的bundle mirrors(可選)
使用bundle config -h可以找到??的命令:
bundle config mirror.SOURCE_URL MIRROR_URL
這裏使用:
$ bundle config mirror.https://rubygems.org https://gems.ruby-china.org
不懂??:
??這個不是很明白,要求初始化一個用戶 Ensure you have already initialized a user with username: postgres
and password: postgres
( e.g. $ createuser -d postgres
)
最後,新建app時,下載模版:
rails new -m <url>
選項-m是 應用程序模版。
這裏:
$ rails new myapp -m https://raw.github.com/80percent/rails-template/master/composer.rb
rails5.2新特性--ActiveStorage, 使用80percent/rails-template