Awesome Rails Gem zh-CN
Awesome Rails Gem 中文版
熟悉大牛们写的 gem,不用重复造轮子,将更多的精力放到更有意义的事情上。
欢迎 Star & Fork ~~ https://github.com/debbbbie/awesome-rails-gem-zh_CN
用户
认证
- Devise - 用于快速构建用户功能,如:注册,登陆,个人设置,找回密码...
- Knock - 符合 JWT (JSON Web Token) 规范的认证 API
- Clearance - 基于邮箱密码认证
- Devise token auth - 基于 Token 认证的 JSON API
授权
- Pundit - Pundit 提供一系列方法来扩展 Ruby 的基本类和面相对象的设计模式,用以构建简单、强壮、可伸缩的认证系统
- cancancan - 扩展 CanCan,可以规定某个用户拥有哪些资源,所有权限都定义在一个单独的地方( Ability 类)
- rolify - 角色管理
- acl9 - 基于角色的认证系统,并且提供简洁的 DSL
Omniauth
- omniauth-facebook
- omniauth-google-oauth2
- omniauth-weibo-oauth2
- omniauth-twitter
- omniauth-github
- omniauth-linkedin-oauth2
模型
- Enumerize - 适用枚举类型的属性,支持 i18n 、activerecord、mongoid,并可以集成到 Simple Form
- counter_culture - 计数缓存
- custom_counter_cache - 简单的自定义技术缓存,可以在 model间共用
- Sequenced - 管理 排序性 id 的 gem
- FriendlyId - URL 友好的 ID
- AASM - 状态机
- PaperTrail - 记录版本、审计用的,记录数据的变化
- paranoia - 假删除
- Validates - 提供一系列有用的自定义验证,包括Email, Url, Slug, Money, Ip, AssociationLength, AbsolutePath, UriComponent, Color, Ean
- globalize - 数据翻译中的 i18n 库
- deep_cloneable - 深度拷贝、支持关系拷贝、可选拷贝
- social_shares - 检查 url 在社交网络中的共享次数
- public_activity - 活动追踪,类似 github的 Public Activity
- goldiloader - activerecode 预加载,用来减少数据库查询次数
- Tagging
- ActsAsTaggableOn - 打标记
- closure_tree - 多层级标记
插件
- Spreadsheet - 读写 Spreadsheet 文档
- Chartkick - 用一行 ruby 代码创建漂亮的 js 图表
- kaminari - 很火的分页插件
- CKEditor - 所见即所得编辑器
- HTML::Pipeline - html 处理器
- Slack Notifier 给 slack 发通知
- Rails ERD - 生成实体关系图
- Parity - 为 heroku 提供 shell 命令
- Airbrussh - 美化 SSHKit 和 Capistrano 的输出内容
API
- Grape - 提供 REST-ful APIs
- ActiveModel::Serializers - 通过配置方便生成 JSON
- Jbuilder - 提供 DSL 来定义 JSON 结构
- rest-client - HTTP 和 REST 客户端
- has_scope - 在 controller 中使用named scopes
- Documentation
- Grape Swagger - 为 Grape API 自动生成文档
- Grape Swagger UI - Grape Swagger 的界面
- apiary - [收费]团队协作工具,一起设计、原型、文档和测试 API
- apiblueprint - API 文档
邮件
- letter_opener - 在浏览器中预览邮件,而不用真实的发送
文件上传
-
Carrierwave - 为 Rails, Sinatra 等框架负责文件上传,很流行
- carrierwave_backgrounder - 分流图片处理、并且在后台存储,用 Delayed Job, Resque, Sidekiq 等
- CarrierWave Crop - 裁剪上传的图片
- CarrierWave ImageOptimizer - 优化上传的图片
- remotipart - Rails jQuery 上传控件
- MiniMagick - ImageMagick/GraphicsMagick 的 ruby 包装
- fog - 云服务管理
- refile - 流行的上传库
- Paperclip - ActiveRecord 附件管理
- Dragonfly - on-the-fly 上传工具
搜索
- ransack - 可以创建简单或复杂的搜索表单
- elasticsearch-rails - 集成 Elasticsearch
- Chewy - 高度集成 Elasticsearch
- Chewy_Kiqqer - [不再维护]
- pg_search - 充分利用 postgres 的优势
- sunspot - 与 Solr 集成
- searchkick - 集成 Elasticsearch
定时任务
- Whenever - 定时任务
- Resque - 基于 Redis 的后台延时处理任务
- Rufus-Scheduler - 又一个定时任务
- Delayed Job - 基于数据库的后台延时处理任务
-
Sidekiq - 后台延时处理任务
- sidetiq - Sidekiq 的循环任务
- sidekiq-cron - Sidekiq 的又一个循环任务
- sidekiq-scheduler - Sidekiq 的又一个循环任务
- Sucker Punch - 后台延时处理任务,不需要额外进程
视图
- formtastic - 创建表单的 DSL
- Simple Form - 更加灵活的表单 DSL
- Nested Form - 级联的表单 DSL,兼容 Simple Form
- meta-tags - SEO 相关的库
- active_link_to - 根据当前 url 自动加 active 样式
- cells - 把公用的 UI 写到 view models
- i18n Country Code Select - 国家代码列表
- Subdivision Select - 二级下拉列表,包括国家、省
- cocoon - 级联的表单 DSL
环境变量
- Config - 多环境的 YAML 配置文件
- Figaro - 针对 heroku 的配置办法
- dotenv - 将环境变量写到 .env 文件中
- opsworks-dotenv - 用 OpsWorks, Chef 和 Dotenv 配置环境变量
后台管理
-
ActiveAdmin - 后台管理框架
- active_skin: 为 ActiveAdmin 制作的皮肤
- RailsAdmin - 后台管理
- Typus - 管理界面,让受信任用户管理数据
- administrate - 灵活的后台管理
日志
- Impressionist - 记录页面访问情况,还可以为一个访问记录几次
- Ahoy - 记录访问情况,和事件
- Lograge - 改变 rails 默认的日志,使变得更好
调试
-
byebug - 简单易用,不依赖其他代码
- pry-byebug - 集成 Pry 与 byebug
- pry-rails - 使用 pry 打开 rails console
- awesome_print - 将 ruby 对象打印的更加漂亮
- web-console - 把 console 加到 rails 中
- spring - rails 预加载
- rails-footnotes - 将调试信息显示到脚注
- g - [不更新]
- terminal-notifier - 发送 Mac OS X 通知
- letter_opener - 在浏览器中预览邮件,而不用真实的发送
- Better Errors - 替代原生的错误页面,更加漂亮有用
- RailsPanel - Chrome 扩展,在浏览器上更好的显示 rails 日志
代码风格
- RuboCop - 代码分析,遵循很多代码规范
- Rails Best Practice - 检查代码质量
- Metric Fu - 检查代码质量
- Pronto - 自动检查变化的代码,与 github 集成
测试
- rspec-rails - 测试框架
-
Capybara -模拟真实用户交互 测试 Web 应用,有这些驱动:
- capybara-webkit - 使用 QtWebkit 的 webkit
- selenium-webdriver - webdriver 支持
- poltergeist - headless WebKit browser,使用 PhantomJS
- page-object - 创建灵活的页面对象来做 web 测试
- factory_girl - 专门用来构造模拟测试数据的,完美替代Fixture的工具
- factory_girl_rails - factory_girl 集成到 Rails
- factory_factory_girl - 根据命名规则,生成 factory 文件
- Database Cleaner - 一系列清理数据库的策略
- shoulda-matchers - 提供很多 matchers 来测试 Rails 的函数
- ResponseCodeMatchers - rspec matchers 匹配 http 返回值
- SimpleCov - 代码测试覆盖分析工具
- Timecop - 用来测试时间相关,可以冻结时间、时间旅行
- VCR - 记录 http 的返回内容,并在以后的测试中快速准确的重现
安全
- brakeman - 静态分析工具,检查程序的安全缺陷
- bundle-audit - 检查 Bundle 的补丁等级,包括易受攻击版本和不安全的 gem 源等
- Secure Headers - 自动设置安全相关的 headers
生产
- Capistrano - 远程服务器部署工具
- Slowpoke - Rack::Timeout 的升级版
- Rack Attack - 防止恶意攻击、限制访问频率
- Responders - 一系列 responders
- production_rails - Rails Best practices,一系列 Gem
- Mina - 快速部署、服务器自动化工具
错误日志
资源管道
- Alaska - ExecJS 运行时保持与 nodejs 连接,加速 coffeescript 的编译和部署