Rails kurallarıyla çalışan bir destek sistemi
ActiveRecord modelleri, generator'lar, engine montajı ve ekibinizin zaten bildiği tanıdık Ruby kalıpları. Escalated, gem olarak gönderilen bir Rails engine'idir.
$ bundle add escalatedNeden Escalated
Rails İçin Neden Escalated
ActiveRecord Modeller
Biletler, yanıtlar, etiketler ve aktiviteler ActiveRecord modelleridir. Uygulamanızdaki herhangi bir model gibi kapsamları, ilişkilendirmeleri ve doğrulamaları kullanın.
Rails Generator'lar
Tanıdık `rails generate` komutlarıyla migration'lar oluşturun, yapılandırma dosyaları kurun ve görünümler oluşturun. Manuel kurulum gerekmez.
Engine Mimarisi
`config/routes.rb`'nize Rails engine olarak monte edilir. Kimlik doğrulama yığınınızı paylaşırken Escalated route'larını, controller'larını ve görünümlerini izole eder.
Başlarken
Nasıl Çalışır
Gem'i Kurun
bundle add escalatedGenerator'ı Çalıştırın
rails generate escalated:install && rails db:migrateEngine'i Bağlayın
Route'larınıza `mount Escalated::Engine => '/support'` ekleyin ve canlısınız.
Özellikler
Rails ekosistemi için yapıldı
ActiveRecord İlişkilendirmeler
Biletler kullanıcılara aittir, birçok yanıtı vardır ve polimorfik ilişkilendirmelerle bağlanır. Arel veya kapsamlarla sorgulayın.
ActiveJob Entegrasyonu
E-posta bildirimleri ve webhook gönderimleri ActiveJob üzerinde çalışır. Uygulamanızın zaten kullandığı Sidekiq, Resque veya herhangi bir arka ucu kullanın.
Pundit & CanCanCan Desteği
Yetkilendirme standart Ruby yetkilendirme kütüphaneleriyle çalışır. Biletlere, yanıtlara ve yönetim işlevlerine erişimi kontrol edin.
ActiveSupport Callback'ler
Her bilet eylemi callback'leri tetikler. İş akışları oluşturmak için after_create, after_update ve özel yaşam döngüsü olaylarına bağlanın.
Rack Middleware
Mevcut Rack middleware'lerinizi Escalated route'larına uygulayın. Kimlik doğrulama, hız sınırlama ve kiracı kapsamı doğal olarak çalışır.
FactoryBot Fabrikalar
Biletler, yanıtlar ve kullanıcılar için FactoryBot fabrikalarıyla gelir. Tanıdık kalıplarla RSpec veya Minitest testleri yazın.
Uygulamada Görün
Uygulamanıza tam bir destek sistemi eklemek için birkaç satır 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 )
Rails uygulamanıza destek biletleri eklemeye hazır mısınız?
Escalated açık kaynak, kendi sunucunuzda ve Rails uygulamanızın yerel bir parçası gibi hissetmek için tasarlanmıştır.