Module: ActsAsPage::ClassMethods

Defined in:
lib/acts_as_page.rb

Instance Method Summary collapse

Instance Method Details

#acts_as_pageObject



11
12
13
14
15
16
17
18
19
20
21
# File 'lib/acts_as_page.rb', line 11

def acts_as_page
  extend FriendlyId
  has_many :parts, class_name: 'PagePart'

  validates :title, presence: true, uniqueness: true

  attr_accessible :title, :home, :meta_keywords, :meta_description
  translates :title, :slug, :meta_keywords, :meta_description

  friendly_id :title, use: [:slugged, :globalize]
end

#set_home_page(model) ⇒ Object



23
24
25
26
# File 'lib/acts_as_page.rb', line 23

def set_home_page(model)
  model.class.update_all(home: false)
  model.update_attribute(:home, true)
end

#with_globalize(conditions = {}) ⇒ Object



29
30
31
32
33
34
35
36
37
38
# File 'lib/acts_as_page.rb', line 29

def with_globalize(conditions = {})
  conditions = {locale: ::Globalize.locale.to_s}.merge(conditions)
  globalized_conditions = {}
  conditions.keys.each do |key|
    if (translated_attribute_names.map(&:to_s) | %w(locale)).include?(key.to_s)
      globalized_conditions["#{self.translation_class.table_name}.#{key}"] = conditions.delete(key)
    end
  end
  joins(:translations).where(globalized_conditions).where(conditions).readonly(false)
end