Module: Concerns::Taggable

Extended by:
ActiveSupport::Concern
Included in:
Article, Asset, Page
Defined in:
app/models/concerns/taggable.rb

Instance Method Summary collapse

Instance Method Details



9
10
11
12
13
14
15
# File 'app/models/concerns/taggable.rb', line 9

def related(locale = I18n.locale)
  tagged_items = TaggedItem.where(tag_id: tags(locale).map(&:id), taggable_type: self.class.name)
  tagged_items.to_a.inject([]) do |memo,i|
    memo << self.class.find(i.taggable_id) unless i.taggable_id == id
    memo
  end.uniq
end

#taggable?Boolean

Returns:

  • (Boolean)


25
26
27
# File 'app/models/concerns/taggable.rb', line 25

def taggable?
  true
end

#tags(locale = I18n.locale) ⇒ Object



17
18
19
# File 'app/models/concerns/taggable.rb', line 17

def tags(locale = I18n.locale)
  tagged_items.select { |i| i.tag.locale == locale.to_s }.map(&:tag)
end

#tags_string(locale = I18n.locale) ⇒ Object



21
22
23
# File 'app/models/concerns/taggable.rb', line 21

def tags_string(locale = I18n.locale)
  tags(locale).map(&:name).join(',')
end