Awesome Rails Gem ¶
一系列令人敬畏的 Ruby Gems for Rails 开发.
目标是帮助每个 Rails 开发人员构建一个非常棒的 Rails 产品 / 服务.
User¶
Authentication¶
- Devise - Devise is a flexible authentication solution for Rails based on Warden.
- Knock - Rails API 的无缝 JWT 身份验证.
- Clearance - 使用电子邮件和密码进行 Rails 身份验证
- Devise token auth - 针对 Rails JSON API 的基于令牌的身份验证.
- Sorcery - Rails 的神奇身份验证. 支持 ActiveRecord,DataMapper,Mongoid 和 MongoMapper.
Authorization¶
- Pundit - Pundit 提供了一组帮助程序,指导您利用常规 Ruby 类和面向对象的设计模式来构建简单,强大且可扩展的授权系统.
- cancancan - CanCan 的延续,Ruby on Rails.CanCan 的授权 Gem 是 Ruby on Rails 的授权库,它限制了允许给定用户访问的资源. 所有权限都在一个位置(Ability 类)中定义,并且不会跨控制器,视图和数据库查询重复.
- rolify - 具有资源范围的角色管理库.
- acl9 - Acl9 是一个基于角色的授权系统,它提供了一个简洁的 DSL 来保护您的 Rails 应用程序.
Omniauth¶
- omniauth-facebook
- omniauth-google-oauth2
- omniauth-weibo-oauth2
- omniauth-twitter
- omniauth-github
- omniauth-linkedin-oauth2
Active Record¶
- Enumerize - 具有 I18n 和 ActiveRecord / Mongoid 支持的枚举属性. 它可以与 Simple Form 集成.
- counter_culture - 适用于 Rails 应用程序的 Turbo-counter 计数器缓存. 对 Rails 标准计数器缓存的巨大改进.
- custom_counter_cache - 创建可在多个模型中使用的自定义计数器缓存的简单方法.
- Sequenced - Sequenced 是一个简单的 gem,可为 ActiveRecord 模型生成范围的顺序 ID.
- FriendlyId - FriendlyId 是 ActiveRecord 的段塞和永久插件的 “瑞士军队推土机”. 它允许您创建漂亮的 URL 并使用人性化的字符串,就像它们是 ActiveRecord 模型的数字 ID 一样.
- AASM - Ruby 类的状态机(纯 Ruby,Rails Active Record,Mongoid).
- PaperTrail - PaperTrail 可让您跟踪模型数据的变化. 它适用于审计或版本控制.
- paranoia - ActiveRecord 插件允许您隐藏和恢复记录而不实际删除它们.
- Validates - Validates 为 Rails 应用程序提供有用的自定义验证器集合,包括:
- EmailValidator
- UrlValidator
- SlugValidator
- MoneyValidator
- IpValidator
- AssociationLengthValidator
- AbsolutePathValidator
- UriComponentValidator
- ColorValidator
- EanValidator(EAN-8 和 EAN-13)
- globalize - Rails I18n 事实上是 ActiveRecord 模型 / 数据转换的标准库.
- deep_cloneable - 这个 gem 为每个 ActiveRecord :: Base 对象提供了进行包含用户指定关联的深度克隆的可能性.
- social_shares - 检查社交网络中共享网址的次数.
- public_activity - 模型的简单活动跟踪 - 类似于 Github 的公共活动.
- goldiloader - 自动 ActiveRecord 预先加载,以减少应用程序运行的数据库查询的数量. * 标记
- ActsAsTaggableOn - Rails 应用程序的标记插件,允许在动态上下文中自定义标记.
- closure_tree - 轻松高效地使您的 ActiveRecord 模型支持层次结构.
- ActionStore - 通过 ActiveRecord Polymorphic Association 在一个表中存储不同类型的操作(Like,Follow,Star,Block ...).
Plugins¶
- Spreadsheet - 库旨在读写电子表格文档.
- Chartkick - Chartkick 帮助您使用一行 Ruby 创建漂亮的 Javascript 图表.
- kaminari - 适用于 Rails 3 和 4 的基于范围和引擎的,干净,强大,可定制和复杂的分页器.
- Slack Notifier 是一个发送通知的简单包装器 Slack 网络挂接.
- Rails ERD - 为 Rails 应用程序生成实体关系图.
- Parity - 用于 Heroku 应用程序的开发,登台和生产奇偶校验的 Shell 命令.
- Airbrussh - Airbrussh 为你的 SSHKit 和 Capistrano 输出做好准备
API¶
- Grape - 用于在 Ruby 中创建 REST-ful API 的微框架.
- ActiveModel::Serializers - Serializer 为您的 JSON 生成带来了约定优于配置.
- Jbuilder - Jbuilder 为您提供了一个简单的 DSL,用于声明按摩巨型哈希结构的 JSON 结构. 当生成过程充满条件和循环时,这尤其有用.
- rest-client - Ruby 的简单 HTTP 和 REST 客户端,受微框架语法的启发,用于指定操作.
- has_scope - 将传入的控制器参数映射到资源中的命名范围. * 文件
- Grape Swagger - 自动生成 Grape API 的文档.
- Grape Swagger UI - 显示使用 Grape Swagger 生成的文档.
- apiary - 共同努力,快速设计,制作原型,记录和测试 API.
- apiblueprint - 具有强大工具的 API 文档.
Email¶
- letter_opener - 在浏览器中预览邮件而不是发送.
File Uploading¶
- Carrierwave - Carrierwave 是 Rails,Sinatra 和其他 Ruby Web 框架文件上传的更加经典的解决方案.
- carrierwave_backgrounder - 使用 Delayed Job,Resque,Sidekiq,Qu,Queue Classic 或 Girl Friday 将 CarrierWave 的图像处理和存储卸载到后台进程.
- CarrierWave Crop - Carrierwave 扩展,使用带预览的 Jcrop 插件裁剪上传的图像.
- CarrierWave ImageOptimizer - 此宝石允许您使用 image_optimizer gem 通过 jpegoptim 或 optipng 简单优化 CarrierWave 图像.
- remotipart - 通过标准 Rails“remote:true” 表单上传 RQuery jQuery 文件.
- MiniMagick - MiniMagick 是 ImageMagick 或 GraphicsMagick 命令行的 ruby 包装器.
- fog - 雾是 Ruby 云服务库,从上到下.
- refile - Refile 是 Ruby 应用程序的现代文件上传库. 它很简单,但功能强大.
- Paperclip - ActiveRecord 的简易文件附件管理.
- Dragonfly - Dragonfly 用于即时文件处理 - 适用于图像或其他附件
- shrine - 用于 Ruby 应用程序的文件附件工具包
Searching¶
- ransack - Ransack 支持为 Ruby on Rails 应用程序创建简单和高级搜索表单.
- elasticsearch-rails - ActiveModel / Record 和 Ruby on Rails 的 Elasticsearch 集成.
- Chewy - 基于官方 elasticsearch-ruby 客户端的高级 Elasticsearch Ruby 框架.
- pg_search - pg_search 构建了 ActiveRecord 命名范围,利用 PostgreSQL 的全文搜索
- sunspot - Sunspot 是一个 Ruby 库,用于与 Solr 搜索引擎进行富有表现力的强大交互. 太阳黑子建立在 RSolr 库之上,为 Solr 交互提供了一个低级接口; Sunspot 提供了一个简单,直观,富有表现力的 DSL,其功能强大,可用于索引对象并搜索对象.
- searchkick - 使用 Rails 和 Elasticsearch 轻松实现智能搜索.
Scheduled/Recurrence Jobs¶
- Whenever - 每当 Ruby gem 为编写和部署 cron 作业提供清晰的语法时.
- Resque - Redis 支持的 Ruby 库,用于创建后台作业,将它们放在多个队列中,以后再处理.
- Rufus-Scheduler - Rufus-scheduler 是一个用于安排代码片段(作业)的 Ruby gem. 它了解在某个时间,在某个时间,每个 x 时间或仅通过 CRON 语句运行作业.
- Delayed Job - 基于数据库的异步优先级队列系统
- Sidekiq - 简单,高效的 Ruby 后台处理.
- sidetiq - sidekiq 的重复工作.
- sidekiq-cron - Sidekiq 工作的 Scheduler / Cron
- sidekiq-scheduler - Sidekiq 的轻量级作业调度程序扩展
- Sucker Punch - Sucker punch 是一个单进程 Ruby 异步处理库.
View Helper¶
- formtastic - Formtastic is a Rails FormBuilder DSL (with some other goodies) to make it far easier to create beautiful, semantically rich, syntactically awesome, readily stylable and wonderfully accessible HTML forms in your Rails applications
- Simple Form - 简单的表单旨在尽可能灵活,同时帮助您使用强大的组件来创建表单. Simple Form 的基本目标是不触及定义布局的方式,让您找到更好的设计.
- Nested Form - 这是一个 Rails gem,可以方便地在一个表单中管理多个嵌套模型. 它通过 jQuery 或 Prototype 以不引人注目的方式实现. 它也可以与 Simple Form 集成.
- meta-tags - Ruby on Rails 应用程序的搜索引擎优化(SEO)插件.
- active_link_to - active_link_to 将 css'active'类添加到您的链接.
- cells - 单元格允许您将 UI 的一部分封装到视图模型中. 查看模型或单元格是可以呈现模板的简单 ruby 类.
- i18n Country Code Select - I18n 国家代码选择 Rails 3 和 4 的表单助手.
- Subdivision Select - 一个 Rails 插件,用于填充 country_select 中的州 / 省选择框.
- cocoon - 使用 jQuery 的动态嵌套表单变得简单
Environment Variables¶
- Config - 多环境 YAML 样式配置,可以轻松,有效地轻松管理特定于环境的设置.
- Figaro - Figaro 非常简单,使用 ENV 和单个 YAML 文件的 Heroku 友好的 Rails app 配置.
- dotenv - Dotenv 是一个 gem,允许您在. env 文件中设置环境变量,并将其加载到 ENV 中.
- opsworks-dotenv - Opsworks-dotenv 允许您使用 OpsWorks,Chef 和 Dotenv 为您的 Rails 应用程序配置环境.
Admin Panel¶
- ActiveAdmin - ActiveAdmin 是 Ruby on Rails 应用程序的管理框架.
- active_skin:活动管理的平坦皮肤.
- RailsAdmin - RailsAdmin 是一个 Rails 引擎,提供易于使用的界面来管理您的数据.
- administrate - 一个 Rails 引擎,可以帮助您组建一个超灵活的管理仪表板.
- Trestle - Ruby on Rails 的现代响应式管理框架
Logging¶
- Impressionist - 印象派可以记录页面展示次数(技术上的动作展示次数),但不仅限于此. 您可以针对每个请求多次记录展示次数. 您还可以将其附加到模型中. 此项目的目标是提供可在您的应用程序中立即访问的可自定义统计信息,而不是使用 Google Analytics 并使用其 API 提取数据.
- Ahoy - Ahoy 为跟踪 Ruby,JavaScript 和本机应用程序中的访问和事件提供了坚实的基础.
- Lograge - 试图驯服 Rails 的默认策略来记录所有内容.
Debug¶
- byebug - Byebug 是一个易于使用,功能丰富的 Ruby 2 调试器. 它使用新的 TracePoint API 进行执行控制,并使用新的 Debug Inspector API 进行调用堆栈导航,因此它不依赖于内部核心源.
- pry-byebug - 通过 byebug 撬导航命令.
- pry-rails - 避免重复自己,使用 pry-rails 而不是将初始化程序复制到每个 rails 项目. 这是一个小宝石,导致 rails 控制台打开撬. 因此,它取决于撬.
- awesome_print - Awesome Print 是一个 Ruby 库,它可以完美地打印出全彩色的 Ruby 对象,并通过适当的缩进来暴露其内部结构.
- web-console - Web Console 是 Ruby on Rails 应用程序的调试工具.
- spring - Spring 是一个 Rails 应用程序预加载器. 它通过让您的应用程序在后台运行来加速开发,因此您不必在每次运行测试,rake 任务或迁移时都启动它.
- rails-footnotes - Rails 脚注在您的应用程序中显示脚注,以便于调试,例如会话,请求参数,cookie,过滤器链,路由,查询等.
- g - 使用 terminal-notifier 或 growl,与 Kernel.p 类似的 Kernel.g.
- terminal-notifier - terminal-notifier 是一个发送 Mac OS X 用户通知的命令行工具,可在 Mac OS X 10.8 及更高版本中使用.
- letter_opener - 在默认浏览器中预览电子邮件而不是发送它. 这意味着您无需在开发环境中设置电子邮件传递,也不必担心将测试电子邮件意外发送到其他人的地址.
- Better Errors - 更好的错误将标准的 Rails 错误页面替换为更好,更有用的错误页面. * 如果您想使用 Better Errors 的高级功能(REPL,本地 / 实例变量检查,漂亮的堆栈帧名称),您需要添加 binding_ _of__caller.
- RailsPanel - RailsPanel 是 Rails 开发的 Chrome 扩展,它将结束您对 development.log 的拖尾.
Coding Style¶
- RuboCop - Rubocop 是一个 Ruby 静态代码分析器. 开箱即用它将强制执行社区中列出的许多准则 Ruby Style Guide.
- Rails Best Practice - Rails 最佳实践是一种代码度量工具,用于检查 rails 代码的质量.
- Metric Fu - 充满代码指标的拳头
- Pronto - 对您的更改进行快速自动代码审查
Testing¶
- rspec-rails - Rspec-rails 是 Rails 3.x 和 4.x 的测试框架.
- Capybara - Capybara 通过模拟真实用户与您的应用互动的方式来帮助您测试 Web 应用程序. 和司机:
- capybara-webkit - Capybara-webkit 是一个通过 QtWebkit 使用 Webkit 的水豚驱动程序.
- selenium-webdriver - Selenium-webdriver 为 WebDriver 提供 ruby 绑定.
- poltergeist - Poltergeist 允许您在 PhantomJS 提供的无头 WebKit 浏览器上运行 Capybara 测试.
- page-object - Page-object 是一个简单的 gem,可以帮助创建灵活的页面对象来测试基于浏览器的应用程序.
- factory_bot - Factory_bot 是一个灯具替代品,具有简单的定义语法,支持多个构建策略(保存的实例,未保存的实例,属性哈希和存根对象),并支持同一个类的多个工厂(user,admin_user 等) ,包括工厂继承.
- factory_bot_rails - Factory_bot_rails 为 factory_bot 提供 Rails 集成.
- factory_factory_girl - FactoryFactoryGirl 允许您使用命名规则更有效地生成工厂文件.
- Database Cleaner - Database Cleaner 是一套用于在 Ruby.Support ActiveRecord,DataMapper,Sequel,MongoMapper,Mongoid,CouchPotato,Ohm 和 Redis 中清理数据库的策略.
- shoulda-matchers - Shoulda-matchers 提供了几个用于测试常见 Rails 功能的匹配器.
- ResponseCodeMatchers - ResponseCodeMatchers 提供 rspec 匹配器以匹配 http 响应代码.
- SimpleCov - SimpleCov 是 Ruby 的代码覆盖率分析工具.
- Timecop - 提供 “时间旅行” 和“时间冻结”功能的宝石,使得测试与时间相关的代码变得简单.
- VCR - 记录测试套件的 HTTP 交互并在将来的测试运行期间重放它们,以进行快速,确定,准确的测试.
Security¶
- brakeman - Brakeman 是一个静态分析工具,可检查 Ruby on Rails 应用程序的安全漏洞.
- bundle-audit - bundler-audit 是 Bundler 的补丁级验证工具,用于检查宝石和不安全宝石源的易受攻击版本.
- Secure Headers - 安全标头将自动应用与安全性相关的多个标头.
Production¶
- Capistrano - 远程多服务器自动化工具.
- Slowpoke - Rack :: Timeout 很棒. Slowpoke 让它变得更好.
- Rack Attack - 将中间件托架到阻塞和限制.
- Responders - 一组 Rails 响应程序来干扰您的应用程序.
- production_rails - 在生产中运行 Rails 的最佳实践.
- Mina - 快速部署和服务器自动化工具.
Error Logging¶
- Rollbar - 从 Ruby 到 Rollbar 的异常跟踪和日志记录.
- Airbrake - 用于将应用程序与 Airbrake 集成的 Notifier gem
- Errbit - 符合 Airbrake 的开源通知器 gem.
Database¶
- rails_db - Rails 数据库查看器和 SQL 查询运行器
Asset Pipeline¶
- Alaska - 与 nodejs 持久连接的 ExecJS 运行时,在开发和部署期间加快了 coffeescript 编译过程.