Ruby on Rails

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.

Terminal
$ bundle add escalated

Waarom 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

1

Installeer de gem

bundle add escalated
2

Voer de generator uit

rails generate escalated:install && rails db:migrate
3

Mount 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.

Ruby
# 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.