全栈营《Rails百宝箱课程》小结和感悟 | 大量gem包各种好用

全栈营《Rails百宝箱课程》小结和感悟 | 大量gem包各种好用_第1张图片
微信公众号 爱莉莎的雪月花.jpg

Rails百宝箱学完了

全栈营iHower老师的Rails百宝箱系列课程学完啦。(此处应有果冻舞的音乐和掌声,谢谢!)

Rails 百宝箱里:各种更友好的界面设计、更强大的数据处理。那些丰富多彩的gem,充分展示了睿智的程序员们——绝不重复造车轮!

各种Gem 小结

  1. 多语言设置:
    是指网站中的句子和单字,可以根据用户的语言需求进行切换。作法就是准备翻译词汇档,然后通过调用 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
  1. 表单单选 | 多选 UI :
  • gem "select2-rails" https://github.com/argerim/select2-rails
  1. 嵌套表单 (1-to-1, or 1-to-many):
  • gem "nested_form_fields"
  1. 选择日期:
  • gem 'bootstrap-datepicker-rails'
  1. 显示用户输入的HTML:
    这里有个安全知识点: 不能用*<%= raw @event.description %> *或 <%= @event.description.html_safe %>,部分狡猾的黑客会输入 Javascript,对网站进行篡改或攻击。使用sanitize 白名单过滤,同时在config/application.rb中,完善白名单。
    **如果要使用Rich Editor,可以用ckeditor gem: **
  • gem 'ckeditor'
  1. 分页功能:
  • gem 'kaminari'
    其中,使用 $rails g kaminari:views bootstrap3,会产生搭配 Bootstrap 样式的样板
  1. 筛选资料:
    关键字搜寻,使用 Ransack , search_field是 ransack 独到的方法
  • gem 'ransack'
  • 如果是大数据等级,请安装专门的全文搜寻引擎,如 Elasticsearch。
  1. 调整活动列表的自定义顺序
  • gem 'ranked-model' : 传统UI
  • gem 'jquery-ui-rails' : Ajax拖拉UI,直接用鼠标进行拖拉排序。
  1. 数据汇出:汇出 Excel 档案

    • gem 'rubyzip'
    • gem 'axlsx'
    • gem 'axlsx_rails'
  2. 制作图表分析报名资料

  • Chartkick 这一套搭配 Rails 最简单,甚至不需要写 JavaScript 代码,有 Helper 可以使用
  • Chart.js 这一套好用又漂亮,需要写 JavaScript
  • D3.js 这一套功能最强,是专业的数据可视化套件,但也比较复杂
    Chart.js 有 chart-js-rails gem 可以安装,但因为只有后台有用到,可以不包进 asset pipeline,而使用 CDN 让用户直接从 CDN 服务器下载回去。
  1. 异步任务处理:
  • gem 'sidekiq'
  1. 上传图片:
  • gem 'carrierwave'
  • gem "mini_magick"
  1. 软删除和版本控制,编修记录的UI和复原
  • gem 'paper_trail': has_paper_trail
    paper_trail 文档上,有完整的版本浏览、比较和复原的作法。
  1. 专用的权限检查 gem,避免忘记加上权限(如果忘记加上 before_action)。最知名的有以下两套:
  • Pundit
  • Cancancan
  1. 本机开发的时候,模拟寄出 E-mail
  • letter_opener,这样 Rails 会在寄信时,自动打开浏览器进行预览。
  1. 自动转化 inline CSS
  • gem 'premailer-rails'
    premailer-rails gem 可以帮我们自动自动转换成 inline CSS 。省了多少事。

一些原则:

  1. DRY: Don't repeat yourself,这是一个写好程序的基本原则。
  2. 能在前端解决的,就在前端解决。如:内联式错误讯息处理。
  3. 增加后台管理员权限:增加一个 role 字串符字段到 users table 上, role:string, 扩充角色弹性。
  • admin 有全部后台权限
  • editor 可以进入后台管理活动,但不能管理用户

感悟

30小时转瞬即逝。为bug抓狂过,为迁移成功兴奋过,当解决了一个隐藏很深的认知错误,实现了每日订单数量的图表时,欢呼雀跃。


全栈营《Rails百宝箱课程》小结和感悟 | 大量gem包各种好用_第2张图片
Screen Shot 2017-05-21 at 11.14.28.png

但提交作业时,发现课程的打开率越来越少,最后第四辑只有10多位(500多名一期同学啊),交作业的更少。脑海中突然想起了邓紫棋唱的《后悔无期》。
在XDite老师的指导教练下,鸡血奋战三个月不难!但是,长期的学习还是要靠自己!充满游戏性的美好教程,也需要你打开全栈营网页才能看到,不是吗?

喜爱编程,就投入时间给她吧!
时间看得见!
共勉!

你可能感兴趣的:(全栈营《Rails百宝箱课程》小结和感悟 | 大量gem包各种好用)