Un sistema de soporte que funciona con las convenciones de Rails
Modelos ActiveRecord, generadores, montaje de engine y los patrones Ruby familiares que tu equipo ya conoce. Escalated es un engine de Rails que se distribuye como una gema.
$ bundle add escalatedPor qué Escalated
Por qué Escalated para Rails
Modelos ActiveRecord
Tickets, respuestas, etiquetas y actividades son modelos ActiveRecord. Usa scopes, asociaciones y validaciones como cualquier modelo en tu aplicación.
Generadores de Rails
Genera migraciones, instala archivos de configuración y crea scaffolding de vistas con comandos familiares de `rails generate`. Sin configuración manual requerida.
Arquitectura de engine
Se monta como un engine de Rails en tu `config/routes.rb`. Aísla las rutas, controladores y vistas de Escalated mientras comparte tu stack de autenticación.
Primeros pasos
Cómo funciona
Instala la gema
bundle add escalatedEjecuta el generador
rails generate escalated:install && rails db:migrateMonta el engine
Agrega `mount Escalated::Engine => '/support'` a tus rutas y ya está.
Características
Diseñado para el ecosistema Rails
Asociaciones ActiveRecord
Los tickets pertenecen a usuarios, tienen muchas respuestas y se conectan a través de asociaciones polimórficas. Consúltalos con Arel o scopes.
Integración con ActiveJob
Notificaciones por correo y envíos de webhooks se ejecutan en ActiveJob. Usa Sidekiq, Resque o cualquier backend que tu aplicación ya use.
Soporte para Pundit y CanCanCan
La autorización funciona con las bibliotecas estándar de autorización de Ruby. Controla el acceso a tickets, respuestas y funciones de administración.
Callbacks de ActiveSupport
Cada acción de ticket activa callbacks. Engánchate a after_create, after_update y eventos de ciclo de vida personalizados para construir flujos de trabajo.
Middleware Rack
Aplica tu middleware Rack existente a las rutas de Escalated. Autenticación, limitación de velocidad y alcance de tenants funcionan naturalmente.
Factories de FactoryBot
Incluye factories de FactoryBot para tickets, respuestas y usuarios. Escribe tests con RSpec o Minitest con patrones familiares.
Véalo en acción
Unas pocas líneas de Ruby para agregar un sistema completo de soporte a tu aplicación.
# config/routes.rb Rails.application.routes.draw do mount Escalated::Engine => '/support' end # app/models/user.rb class User < ApplicationRecord include Escalated::HasTickets end # Anywhere in your application ticket = user.tickets.create!( subject: 'Need help with billing', priority: :high ) ticket.replies.create!( body: "We've updated your invoice.", user: agent )
¿Listo para agregar tickets de soporte a tu aplicación Rails?
Escalated es código abierto, auto-alojado y diseñado para sentirse como una parte nativa de tu aplicación Rails.