enum status: [ :in_progress, :on_hold, :cancelled, :shipped ]
Мне нужно разделить: отправлено на основе до или после одного года с текущей даты.
enum status: [ :in_progress, :on_hold, :cancelled, :shipped, :archive_shipped ]
как выписать сферу для условия?Или он должен быть написан как метод self.phase?
РЕДАКТИРОВАНИЕ
class SalesOrder < ActiveRecord::Base
include Filterable
include Tenancy
enum status: [ :in_progress, :on_hold, :cancelled, :shipped ]
has_many :line_items, dependent: :destroy
has_many :films
accepts_nested_attributes_for :line_items, allow_destroy: true
validates :code, presence: true,
uniqueness: { case_sensitive: false,
scope: :tenant_code }
validates :ship_date, presence: true, if: Proc.new { |o| o.shipped? }
validate :ship_date_after_release?
validates :release_date, presence: true
validates :due_date, presence: true
include PgSearch
pg_search_scope :search, against: [:code, :customer, :ship_to, :note],
:using => { tsearch: { prefix: true } }
scope :order_by, ->(col, dir) { order("#{col} #{dir}") }
scope :status, ->(status) { where(status: statuses[status]) }
scope :due_date_equals, ->(date) { where(due_date: date) }
scope :type, ->(prefix) { where('code ILIKE ?', prefix) }
scope :ship_date_before, ->(date) { where("ship_date <= ?", date) }
scope :ship_date_after, ->(date) { where("ship_date >= ?", date) }
scope :text_search, ->(query) { reorder('').search(query) }
scope :code_like, ->(code) { where('code ILIKE ?', code.gsub('*', '%')) }
scope :status_not, ->(status) { where("status <> ?", statuses[status]) }
Добавление: заархивированная область: отправлено, -> (дата) {где ("дата до 1 года} область действия: архив_ отправлено, -> (дата) {где ("дата после 1 года}