Sha256: b537b6483ef1a511a8c631dd9f1572e1cdefd80a95a1aa7147bb0eaf6c8e573e

Contents?: true

Size: 983 Bytes

Versions: 3

Compression:

Stored size: 983 Bytes

Contents

class Comfy::Cms::Translation < ActiveRecord::Base
  self.table_name = "comfy_cms_translations"

  include Comfy::Cms::WithFragments

  cms_has_revisions_for :fragments_attributes

  # -- Relationships -----------------------------------------------------------
  belongs_to :page

  # -- Callbacks ---------------------------------------------------------------
  before_validation :assign_layout

  # -- Scopes ------------------------------------------------------------------
  scope :published, -> { where(is_published: true) }

  # -- Validations -------------------------------------------------------------
  validates :label,
    presence:   true

  validates :locale,
    presence:   true,
    uniqueness: {scope: :page_id}

  validate :validate_locale

private

  def validate_locale
    return unless self.page
    errors.add(:locale) if self.locale == self.page.site.locale
  end

  def assign_layout
    self.layout ||= self.page.layout if self.page.present?
  end
end

Version data entries

3 entries across 3 versions & 1 rubygems

Version Path
comfortable_mexican_sofa-2.0.2 app/models/comfy/cms/translation.rb
comfortable_mexican_sofa-2.0.1 app/models/comfy/cms/translation.rb
comfortable_mexican_sofa-2.0.0 app/models/comfy/cms/translation.rb