Ruby on Rails

Rails 규칙으로 실행되는 지원 시스템

ActiveRecord 모델, 제너레이터, 엔진 마운팅, 팀이 이미 알고 있는 익숙한 Ruby 패턴. Escalated는 gem처럼 출시되는 Rails 엔진입니다.

터미널
$ bundle add escalated

왜 Escalated인가

Rails를 위한 Escalated

ActiveRecord 모델

티켓, 답장, 태그, 활동이 ActiveRecord 모델입니다. 앱의 어떤 모델처럼 스코프, 연관, 유효성 검사를 사용하세요.

Rails 제너레이터

익숙한 `rails generate` 명령으로 마이그레이션 생성, 설정 파일 설치, 뷰 스캐폴딩. 수동 설정 불필요.

엔진 아키텍처

`config/routes.rb`에 Rails 엔진으로 마운트됩니다. 인증 스택을 공유하면서 Escalated 라우트, 컨트롤러, 뷰를 격리합니다.

시작하기

작동 방식

1

Gem 설치

bundle add escalated
2

제너레이터 실행

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

엔진 마운트

라우트에 `mount Escalated::Engine => '/support'`를 추가하면 라이브됩니다.

기능

Rails 생태계를 위해 구축

ActiveRecord 연관

티켓은 사용자에 속하고, 많은 답장을 가지며, 다형 연관으로 연결됩니다. Arel 또는 스코프로 쿼리하세요.

ActiveJob 통합

이메일 알림과 웹훅 디스패치가 ActiveJob에서 실행됩니다. 앱에서 이미 사용하는 Sidekiq, Resque 또는 어떤 백엔드든 사용하세요.

Pundit & CanCanCan 지원

표준 Ruby 인가 라이브러리와 인가가 작동합니다. 티켓, 답장, 관리 기능에 대한 액세스를 제어하세요.

ActiveSupport 콜백

모든 티켓 액션이 콜백을 트리거합니다. after_create, after_update, 커스텀 라이프사이클 이벤트에 연결하여 워크플로우를 구축하세요.

Rack 미들웨어

기존 Rack 미들웨어를 Escalated 라우트에 적용하세요. 인증, 속도 제한, 테넌트 스코핑이 자연스럽게 작동합니다.

FactoryBot 팩토리

티켓, 답장, 사용자를 위한 FactoryBot 팩토리가 포함됩니다. 익숙한 패턴으로 RSpec 또는 Minitest 테스트를 작성하세요.

실제 작동 보기

애플리케이션에 전체 지원 시스템을 추가하는 몇 줄의 Ruby.

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 앱에 지원 티켓을 추가할 준비가 되셨나요?

Escalated는 오픈소스, 셀프호스팅이며, Rails 애플리케이션의 네이티브 부분처럼 느껴지도록 설계되었습니다.