Module: ComfortableMexicanSofa::IsCategorized::ClassMethods

Defined in:
lib/comfortable_mexican_sofa/extensions/is_categorized.rb

Instance Method Summary collapse

Instance Method Details

#cms_is_categorizedObject



8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
# File 'lib/comfortable_mexican_sofa/extensions/is_categorized.rb', line 8

def cms_is_categorized
  include ComfortableMexicanSofa::IsCategorized::InstanceMethods
  
  has_many :categorizations,
    :as         => :categorized,
    :class_name => 'Comfy::Cms::Categorization',
    :dependent  => :destroy
  has_many :categories,
    :through    => :categorizations,
    :class_name => 'Comfy::Cms::Category'
    
  attr_accessor :category_ids
  
  after_save :sync_categories
  
  scope :for_category, lambda { |*categories|
    if (categories = [categories].flatten.compact).present?
      self.distinct.
        joins(:categorizations => :category).
        where('comfy_cms_categories.label' => categories)
    end
  }
end