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