rails5.2新特性--ActiveStorage, 使用80percent/rails-template
Posted chentianwei
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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
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的主要内容,如果未能解决你的问题,请参考以下文章
Rails 5.2 无法使用 Sublime Text 打开 Rails 凭据
带有 Ruby 2.5.1 控制台的 Rails 5.2.0 - `warning:` `already` 已初始化常量 FileUtils::VERSION