mirror of
https://github.com/maybe-finance/maybe.git
synced 2025-07-24 07:39:39 +02:00
24 lines
549 B
Ruby
24 lines
549 B
Ruby
class Merchant < ApplicationRecord
|
|
has_many :transactions, dependent: :nullify, class_name: "Account::Transaction"
|
|
|
|
validates :name, presence: true, uniqueness: true
|
|
|
|
scope :alphabetically, -> { order(:name) }
|
|
|
|
before_save :normalize_name
|
|
|
|
class << self
|
|
def normalize_name(name)
|
|
name.downcase.strip.titleize
|
|
end
|
|
|
|
def find_or_create_by_normalized_name!(name)
|
|
find_or_create_by!(name: normalize_name(name))
|
|
end
|
|
end
|
|
|
|
private
|
|
def normalize_name
|
|
self.name = self.class.normalize_name(name)
|
|
end
|
|
end
|