Een supportsysteem dat draait op Rails-conventies
ActiveRecord-modellen, generators, engine-mounting en de bekende Ruby-patronen die je team al kent. Escalated is een Rails-engine die als gem wordt geleverd.
$ bundle add escalatedWaarom Escalated
Waarom Escalated voor Rails
ActiveRecord-modellen
Tickets, antwoorden, tags en activiteiten zijn ActiveRecord-modellen. Gebruik scopes, associaties en validaties zoals elk model in je app.
Rails-generators
Genereer migraties, installeer configbestanden en scaffold views met bekende `rails generate`-commando's. Geen handmatige setup nodig.
Engine-architectuur
Monteert als Rails-engine in je `config/routes.rb`. Isoleert Escalated-routes, controllers en views terwijl je authenticatiestack wordt gedeeld.
Aan de slag
Hoe het werkt
Installeer de gem
bundle add escalatedVoer de generator uit
rails generate escalated:install && rails db:migrateMount de engine
Voeg `mount Escalated::Engine => '/support'` toe aan je routes en je bent live.
Functies
Gebouwd voor het Rails-ecosysteem
ActiveRecord-associaties
Tickets behoren tot gebruikers, hebben veel antwoorden en verbinden via polymorfe associaties. Query met Arel of scopes.
ActiveJob-integratie
E-mailmeldingen en webhook-dispatches draaien op ActiveJob. Gebruik Sidekiq, Resque of elke backend die je app al gebruikt.
Pundit & CanCanCan-ondersteuning
Autorisatie werkt met standaard Ruby-autorisatiebibliotheken. Beheer toegang tot tickets, antwoorden en beheerfuncties.
ActiveSupport-callbacks
Elke ticketactie triggert callbacks. Hook in op after_create, after_update en aangepaste lifecycle-events om workflows te bouwen.
Rack-middleware
Pas je bestaande Rack-middleware toe op Escalated-routes. Authenticatie, rate limiting en tenant-scoping werken natuurlijk.
FactoryBot-fabrieken
Wordt geleverd met FactoryBot-fabrieken voor tickets, antwoorden en gebruikers. Schrijf RSpec- of Minitest-tests met bekende patronen.
Bekijk het in actie
Een paar regels Ruby om een volledig supportsysteem aan je applicatie toe te voegen.
# 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 )
Klaar om supporttickets toe te voegen aan je Rails-app?
Escalated is open source, self-hosted en ontworpen om aan te voelen als een native deel van je Rails-applicatie.