Module: Models::CrossLinkable
- Extended by:
- ActiveSupport::Concern
- Defined in:
- app/concerns/models/cross_linkable.rb
Has many collapse
- #inbound_content_links ⇒ ActiveRecord::Relation<ContentLink>
- #outbound_content_links ⇒ ActiveRecord::Relation<ContentLink>
Instance Method Summary collapse
- #content_links_count ⇒ Object
- #linked_content(link_type) ⇒ Object
- #linked_posts ⇒ Object
- #linked_publications ⇒ Object
- #linked_showcases ⇒ Object
- #linked_videos ⇒ Object
Instance Method Details
#content_links_count ⇒ Object
20 21 22 |
# File 'app/concerns/models/cross_linkable.rb', line 20 def content_links_count outbound_content_links.size end |
#inbound_content_links ⇒ ActiveRecord::Relation<ContentLink>
8 |
# File 'app/concerns/models/cross_linkable.rb', line 8 has_many :inbound_content_links, as: :target, class_name: 'ContentLink', dependent: :destroy |
#linked_content(link_type) ⇒ Object
11 12 13 |
# File 'app/concerns/models/cross_linkable.rb', line 11 def linked_content(link_type) outbound_content_links.of_type(link_type).ordered.includes(:target).map(&:target) end |
#linked_posts ⇒ Object
15 |
# File 'app/concerns/models/cross_linkable.rb', line 15 def linked_posts = linked_content('related_post') |
#linked_publications ⇒ Object
18 |
# File 'app/concerns/models/cross_linkable.rb', line 18 def linked_publications = linked_content('related_publication') |
#linked_showcases ⇒ Object
17 |
# File 'app/concerns/models/cross_linkable.rb', line 17 def linked_showcases = linked_content('related_showcase') |
#linked_videos ⇒ Object
16 |
# File 'app/concerns/models/cross_linkable.rb', line 16 def linked_videos = linked_content('related_video') |
#outbound_content_links ⇒ ActiveRecord::Relation<ContentLink>
7 |
# File 'app/concerns/models/cross_linkable.rb', line 7 has_many :outbound_content_links, as: :source, class_name: 'ContentLink', dependent: :destroy |