summaryrefslogtreecommitdiff
path: root/app/models/concerns/shardable.rb
blob: 57cd77b44b4bd65b56b998b19eea3fab81059614 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
# frozen_string_literal: true

module Shardable
  extend ActiveSupport::Concern

  included do
    belongs_to :shard
    validates :shard, presence: true
  end

  def shard_name
    shard&.name
  end

  def shard_name=(name)
    self.shard = Shard.by_name(name)
  end
end