25 lines
694 B
Ruby
25 lines
694 B
Ruby
# frozen_string_literal: true
|
|
|
|
module HasWikiPageSlugAttributes
|
|
extend ActiveSupport::Concern
|
|
|
|
included do
|
|
validates :slug, uniqueness: { scope: meta_foreign_key }
|
|
validates :slug, length: { maximum: 2048 }, allow_nil: false
|
|
validates :canonical, uniqueness: {
|
|
scope: meta_foreign_key,
|
|
if: :canonical?,
|
|
message: 'Only one slug can be canonical per wiki metadata record'
|
|
}
|
|
|
|
scope :canonical, -> { where(canonical: true) }
|
|
|
|
def update_columns(attrs = {})
|
|
super(attrs.reverse_merge(updated_at: Time.current.utc))
|
|
end
|
|
end
|
|
|
|
def self.update_all(attrs = {})
|
|
super(attrs.reverse_merge(updated_at: Time.current.utc))
|
|
end
|
|
end
|