Sha256: cf2b8a3a1f1ffd324907280f5d28e868598a283ffe36a576a3d8a68361344924
Contents?: true
Size: 893 Bytes
Versions: 14
Compression:
Stored size: 893 Bytes
Contents
# frozen_string_literal: true module Decidim module Admin # A form object to create or update pages. class StaticPageForm < Form include TranslatableAttributes attribute :slug, String translatable_attribute :title, String translatable_attribute :content, String attribute :changed_notably, Boolean mimic :static_page validates :slug, presence: true validates :title, :content, translatable_presence: true validates :slug, format: { with: /\A[a-z0-9-]+/ } validate :slug, :slug_uniqueness alias organization current_organization def slug super.to_s.downcase end private def slug_uniqueness return unless organization return unless organization.static_pages.where(slug: slug).where.not(id: id).any? errors.add(:slug, :taken) end end end end
Version data entries
14 entries across 14 versions & 1 rubygems