System wsparcia działający na konwencjach Rails
Modele ActiveRecord, generatory, montowanie silnika i znane wzorce Ruby, które Twój zespół już zna. Escalated to silnik Rails dostarczany jako gem.
$ bundle add escalatedDlaczego Escalated
Dlaczego Escalated dla Rails
Modele ActiveRecord
Zgłoszenia, odpowiedzi, tagi i aktywności to modele ActiveRecord. Używaj zakresów, asocjacji i walidacji jak każdego modelu w aplikacji.
Generatory Rails
Generuj migracje, instaluj pliki konfiguracyjne i twórz widoki za pomocą znanych komend `rails generate`. Bez ręcznej konfiguracji.
Architektura silnika
Montuje się jako silnik Rails w `config/routes.rb`. Izoluje route'y, kontrolery i widoki Escalated, dzieląc stos autentykacji.
Rozpoczęcie pracy
Jak to działa
Zainstaluj gem
bundle add escalatedUruchom generator
rails generate escalated:install && rails db:migrateZamontuj silnik
Dodaj `mount Escalated::Engine => '/support'` do route'ów i gotowe.
Funkcje
Zbudowany dla ekosystemu Rails
Asocjacje ActiveRecord
Zgłoszenia należą do użytkowników, mają wiele odpowiedzi i łączą się przez asocjacje polimorficzne. Odpytuj za pomocą Arel lub zakresów.
Integracja z ActiveJob
Powiadomienia e-mail i wysyłki webhook działają na ActiveJob. Używaj Sidekiq, Resque lub dowolnego backendu, który Twoja aplikacja już używa.
Wsparcie Pundit i CanCanCan
Autoryzacja działa ze standardowymi bibliotekami autoryzacji Ruby. Kontroluj dostęp do zgłoszeń, odpowiedzi i funkcji administracyjnych.
Callbacki ActiveSupport
Każda akcja na zgłoszeniu wyzwala callbacki. Podłącz się do after_create, after_update i niestandardowych zdarzeń cyklu życia, aby budować przepływy pracy.
Middleware Rack
Stosuj swoje istniejące middleware Rack do route'ów Escalated. Autentykacja, limitowanie żądań i zakres tenanta działają naturalnie.
Fabryki FactoryBot
Dostarczane z fabrykami FactoryBot dla zgłoszeń, odpowiedzi i użytkowników. Pisz testy RSpec lub Minitest ze znajomymi wzorcami.
Zobacz w akcji
Kilka linii Ruby, aby dodać pełny system wsparcia do aplikacji.
# 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 )
Gotowy, aby dodać zgłoszenia wsparcia do aplikacji Rails?
Escalated jest open source, self-hosted i zaprojektowany, by czuć się jak natywna część aplikacji Rails.