本文介绍 Ruby 社区里面那些特别热门的 Gem ,如下 Gem 能够在 rubygems.org 找到。html
http://twitter.github.com/bootstrap/前端
https://rubygems.org/gems/twitter-bootstrap-railsjava
https://github.com/seyhunak/twitter-bootstrap-railsgit
来自 Twitter 的 Bootstrap,是一套完整的前台 CSS 框架。 以简洁,优雅著称于世。 被无数攻城狮所青睐, 又让无数程序猿审美疲劳。程序员
twitter-bootstrap-rails Gem 封装了 Boostrap CSS 等代码github
用于快速构建用户功能,如:注册,登录,我的设置,找回密码...web
若是你须要在项目中实现三方平台(如: Twitter, Facebook, 新浪微博, 腾讯 QQ)帐号登录的支持,那你须要用上它。redis
分页控件,几乎全部 Rails App 都在用, 其中 will_paginate 比较老,
应用案例较多, kaminari 更新, 性能和兼容性更好bootstrap
这两个都是上传组件, Paperclip 是老牌产品了,也是几乎绝大多数项目都有在用它,它能够帮你处理上传图片,裁减,定义不一样的图片尺寸,几乎很完美。而 Carrierwave 是后起之秀,功能和 Paperclip
差很少,但它还能够管理除图片以外的东西,并且灵活性更高( ruby-china
就是用它)。 对比: Paperclip 官方只支持 ActiveRecord 但相对稳定, 而 Carrierwave
比较灵活支持更多的 orm, 好比 mongoid
表格控件,针对 ActiveRecord,超级强大,支持任意字段排序,过滤,具体看它的 Demo.
基于 Sphinx 的全文搜索组件,要搞全文搜索功能就用它。
项目常常会有一些配置信息,Settinglogic 能够帮你将写在 YAML 里面的配置信息很方便的调用。而 RailsSettings 也是相似的功能,只不过它是将配置信息存放在数据库里面,以即可以随时在线上修改。同时也带来性能的问题,你能够用改进版 rails-settings-cached,他会将配置缓存下来。
一些应用中会用到为不一样用户设定不一样功能的权限,你能够试试 Cancan 这个 gem 他能够帮你制定一套完善的方案,Railscasts 上面还有个使用介绍,能够看一下。
它是一个基于 Redis 存储的数据存储插件,用于帮助咱们存放一些须要快速存储的数据,如 页面访问量,赞数量,或者一些列表数据,如 Followers,数据将会存入 Redis 中,而它用起来很简单,它能够和 Rails ActiveSupport (简单来讲,也就是 Model 里面)结合,使这些数据存取像一个普通字段通常。
采集数据时咱们须要解析复杂的 HTML 结构,从中得到须要的数据,Nokogiri 能够帮助咱们完美的处理不一样网页上面不一样的 HTML 结构,而且有很好的编码处理能力,用它你不用担忧页面是 GB2312 仍是 GBK 仍是 UTF-8,它都能很好的处理,解析结构能够用相似 jQuery 的 CSS Selector 的方式查找,非常方便。曾经用过 Ruby 的好几个相似插件,最终发现 Nokogiri 才是最好的。
Rails 为咱们带来和一改传统的表单构件方式,可是通过实际的使用,咱们渐渐发觉这样依然仍是不够“敏捷”,咱们须要更加简便并具备更细致规范的表单,因此有了 Formtastic ,它用起来比 Rails 默认的 form 更加简洁,可是却具备更多的功能,你能够为每一个字段设定 help-text 放到文本框下面,并能够走 I18n 的方式设置语言,具体参见 Railscasts 上面对于 Formtastic 的介绍。而 simple_form 和 Formtastic 功能相似,但它的写法还要简单一些。
Linux 里面有 Cron 能够帮助咱们按期执行一些任务,可是 Cron 手动写起来非常麻烦,尤为是前面时间周期的定义, Whenever 能够帮助咱们用更人性化的方式编写 Cron 任务,具体参见 Railscasts 上面关于 Whenever 的介绍。
有时候一些任务的执行会很慢,而这些任务咱们并不要求须要立刻返回结果 (好比:发送邮件,生成图片缩略图),那咱们能够选择将这些任务放到后台执行,以便于页面不会长时间等待执行。Resque 和 delayed_job 能够帮助咱们很容易的搞定这件事情。二者区别在于 Resque 能够有不一样的队列,而 Delayed_job 只有一个,但它能够设定优先级。此外 Delayed_job 除了支持 ActiveRecord,还支持其它 ORM(具体参见 这里)。Delayed_job 使用更加简单。如何选择,这个就要看使用场景了,Resque 上面对比介绍说,若是你须要有大量的任务须要放到队列里面执行,而且不要求优先级,那你就用它吧。DelayedJob不适合处理大量的任务, 瓶颈是基于数据库的, 也不支持队列. 操做上比 Resque 要方便. 而 Resque 是基于 redis 的, 使得生成任务比较迅速, 性能上比 DelayedJob 要好. 惟一的缺点就是不支持定时任务、可是装个 resque-scheduler 能够弥补这一点. 并且 Resque 还有 web 管理界面, 方便查看任务和追踪错误.
随着项目愈来愈大,文件愈来愈多,咱们渐渐发如今开发环境下,项目执行慢得让人没法忍受。这个问题缘由在于 Rails Development 环境没有缓存全部的类 (Model,Controller,Helper,Views...) 文件,每次刷新页面都将会从新载入,而载入过程其实是缓慢的,这个源于 Ruby 的性能问题,因此 rails-dev-boost 搞了缓存的机制来解决这个问题,用它能够 10 倍提高大项目在开发环境的速度问题,不过某些项目可能不起效果,好比用了 ActiveAdmin。 用这个 Gem 在 rails3.1 下提速效果更为明显, 由于 rails3.1 开发环境默认状态下每次请求 assets 哪怕是一张图片也要从新加载全部的程序文件.
在设计 Views 的时候,咱们会将一些不少页面都须要用到的局部功能抽象成 Partials 可是咱们会发现这样动做比较麻烦,由于数据依然还须要在不一样的 Controller 里面载入。而 Cells 能够帮助咱们搞定这个问题,它能够将一个局部功能,从数据调用到 View 生成,所有作成一个独立的组件,使用的时候一行代码就搞定,无需其余的调用,同时还能够在 Cell 里面设定缓存,将缓存颗粒化。并且于 Partials 相比,它的效率好不少。
Rails 3.1 为咱们带来了 Asset Pipeline ,能够帮助咱们处理 JS,CSS 压缩的功能,可是以前的版本如何实现 CSS,JS 压缩呢?Smurf 能够,用它很是简单,装上就能够了,不用修改代码。同时你们能够用另外个改进版本 smurf-huacnlee 它能够另外处理 CSS 里面 image 地址的问题,会在后面加上时间戳 (相似 image_tag 的效果),以解决图片更新后,用户浏览器缓存更新的问题。
将一些事情做为 daemon 来启动,相似 Debian 的 service foo start 好比 用来管理 Resque 的启动和重启,会变得很简单。
随着 Mobile App 的增多,不少时候咱们在作用 Rails 作 API Base 项目时,rails 自带的 C 和 V 层显得过于繁杂,grape 能够帮助咱们快速的构建和 Rails 完美融合的 API 接口。
如今愈来愈多网站为了改善用户体验,使用 JavaScript 来进行客户端验证。对于程序员来讲,也所以增长多一份工做。而每每客户端的验证逻辑跟服务端的验证逻辑几乎同样,若是要另外再写一次验证代码,实在不够 DRY,client_side_validations 正是为解决此问题要出现。client_side_validations 会读取服务端的验证逻辑并生成对应的客户端验证逻辑(依赖 jQuery),让你几乎不用增长任何前端代码就可实现客户验证。
这是一个辅助 ActiveRecord 的组件,让你能够简单的实现按某年,某月,某日,或者星期几,来查询数据,用起来很是简单,省下麻烦的条件组合,此外,它还能够查询上一篇,下一篇相似的功能。
一个很是简单的角色设定模块,不强制要求认证,支持资源对象范围。
这个 gem 能够实现把服务端的数据传到 js 中. 用法很简单.
简单强大的 HTTP/REST 客户端,跟 Grape 配合起来很完美
简单强大的调试工具, 轻量级的工具. 直接在终端调试方便又直接
强大的 seed
编写代码总有方圆,费心费力写文档,还不如用这个工具来控制代码质量。
当前绘图 JS 库中 Highcharts 很是优秀,rubyist 使用这个 gem 来管理和编写须要的图。
它用一个更好的,更有用的错误页替换标准的 Rails 错误页面,对 Rack middleware 也一样有效。Railscasts 也有相应的介绍。
Ruby 进程监控工具
你也能够参考RubyGems排名站点 ruby-toolbox.com
via Ruby China Wiki