Rails百宝箱学完了
全栈营iHower老师的Rails百宝箱系列课程学完啦。(此处应有果冻舞的音乐和掌声,谢谢!)
Rails 百宝箱里:各种更友好的界面设计、更强大的数据处理。那些丰富多彩的gem,充分展示了睿智的程序员们——绝不重复造车轮!
各种Gem 小结
- 多语言设置:
是指网站中的句子和单字,可以根据用户的语言需求进行切换。作法就是准备翻译词汇档,然后通过调用 I18n 方法,来显示文字。比如:en.yml定义英语词汇,zh-CN.yml定义相应的中文词汇。
- gem "rails-i18n", 翻译了部分词汇。请参考 https://github.com/svenfuchs/rails-i18n/blob/master/rails/locale/zh-CN.yml
- gem "devise-i18n": Devise的部分词汇翻译。请参考 https://github.com/tigrish/devise-i18n/blob/master/rails/locales/zh-CN.yml
- 表单单选 | 多选 UI :
- gem "select2-rails" https://github.com/argerim/select2-rails
- 嵌套表单 (1-to-1, or 1-to-many):
- gem "nested_form_fields"
- 选择日期:
- gem 'bootstrap-datepicker-rails'
- 显示用户输入的HTML:
这里有个安全知识点: 不能用*<%= raw @event.description %> *或 <%= @event.description.html_safe %>,部分狡猾的黑客会输入 Javascript,对网站进行篡改或攻击。使用sanitize 白名单过滤,同时在config/application.rb中,完善白名单。
**如果要使用Rich Editor,可以用ckeditor gem: **
- gem 'ckeditor'
- 分页功能:
- gem 'kaminari'
其中,使用 $rails g kaminari:views bootstrap3,会产生搭配 Bootstrap 样式的样板
- 筛选资料:
关键字搜寻,使用 Ransack , search_field是 ransack 独到的方法
- gem 'ransack'
- 如果是大数据等级,请安装专门的全文搜寻引擎,如 Elasticsearch。
- 调整活动列表的自定义顺序
- gem 'ranked-model' : 传统UI
- gem 'jquery-ui-rails' : Ajax拖拉UI,直接用鼠标进行拖拉排序。
-
数据汇出:汇出 Excel 档案
- gem 'rubyzip'
- gem 'axlsx'
- gem 'axlsx_rails'
-
制作图表分析报名资料
- Chartkick 这一套搭配 Rails 最简单,甚至不需要写 JavaScript 代码,有 Helper 可以使用
- Chart.js 这一套好用又漂亮,需要写 JavaScript
-
D3.js 这一套功能最强,是专业的数据可视化套件,但也比较复杂
Chart.js 有 chart-js-rails gem 可以安装,但因为只有后台有用到,可以不包进 asset pipeline,而使用 CDN 让用户直接从 CDN 服务器下载回去。
- 异步任务处理:
- gem 'sidekiq'
- 上传图片:
- gem 'carrierwave'
- gem "mini_magick"
- 软删除和版本控制,编修记录的UI和复原
- gem 'paper_trail': has_paper_trail
paper_trail 文档上,有完整的版本浏览、比较和复原的作法。
- 专用的权限检查 gem,避免忘记加上权限(如果忘记加上 before_action)。最知名的有以下两套:
- 本机开发的时候,模拟寄出 E-mail
- letter_opener,这样 Rails 会在寄信时,自动打开浏览器进行预览。
- 自动转化 inline CSS
- gem 'premailer-rails'
premailer-rails gem 可以帮我们自动自动转换成 inline CSS 。省了多少事。
一些原则:
- DRY: Don't repeat yourself,这是一个写好程序的基本原则。
- 能在前端解决的,就在前端解决。如:内联式错误讯息处理。
- 增加后台管理员权限:增加一个 role 字串符字段到 users table 上, role:string, 扩充角色弹性。
- admin 有全部后台权限
- editor 可以进入后台管理活动,但不能管理用户
感悟
30小时转瞬即逝。为bug抓狂过,为迁移成功兴奋过,当解决了一个隐藏很深的认知错误,实现了每日订单数量的图表时,欢呼雀跃。
Screen Shot 2017-05-21 at 11.14.28.png
但提交作业时,发现课程的打开率越来越少,最后第四辑只有10多位(500多名一期同学啊),交作业的更少。脑海中突然想起了邓紫棋唱的《后悔无期》。
在XDite老师的指导教练下,鸡血奋战三个月不难!但是,长期的学习还是要靠自己!充满游戏性的美好教程,也需要你打开全栈营网页才能看到,不是吗?
喜爱编程,就投入时间给她吧!
时间看得见!
共勉!
网友评论