Sha256: 01ce33a7f399f95ba7f051224677e917d2c2cebf6c697ce9e3a11d036b1d398e
Contents?: true
Size: 773 Bytes
Versions: 11
Compression:
Stored size: 773 Bytes
Contents
module Plug class Feature < ApplicationRecord include AASM # Validations validates :name, presence: { message: 'Feature name is required' }, uniqueness: { message: 'Feature name must be unique', case_sensitive: false } validates :state, presence: { message: 'Feature state is required' } # Callbacks before_save { self.slug = name.parameterize } # Scopes scope :slug_and_name, ->(arg) { where('slug = ? OR name = ?', arg, arg) } # States aasm column: :state do state :enabled, initial: true state :disabled event :enable do transitions from: :disabled, to: :enabled end event :disable do transitions from: :enabled, to: :disabled end end end end
Version data entries
11 entries across 11 versions & 1 rubygems