Skip to content

Recupero collezioni di risorse da DatoCMS

Marco Zampetti edited this page Feb 10, 2021 · 1 revision

Le collezioni di risorse presenti sul CMS sono disponibili con il nome plurale del model id relativo, ad esempio:

dato.articles

PresentationHelper Comprendono la logica di selezione e ordinamento delle collezioni.

# config.rb

module PresentationHelper
  def self.published_announcements(announcements)
    announcements.sort_by(&:date_shown).reverse
  end
  [...]
end

Helper per il frontend

Questi helper sono basati sulla logica dei PresentationHelper, e sono utilizzabili nel frontend:

# config.rb

helpers do
  [...]
  def visible_announcements
    PresentationHelper.published_announcements(dato.announcements)
  end
  [...]
end
- visible.visible_announcements.each do |announcement|
  = announcement.title

Proxies

Vengono utilizzati per la generazione delle pagine basandosi sulle risorse create nel CMS:

# config.rb

dato.tap do |dato|
  [...]
  I18n.with_locale(:it) do
    locale = :it

    visible_announcements = PresentationHelper.published_announcements(dato.announcements)

    paginate_with_fallback(visible_announcements,
                           dato.announcements_index,
                           dato.news_page,
                           locale)

    
    visible_announcements.each do |announcement|
      proxy "/#{dato.news_page.slug}/#{dato.announcements_index.slug}/#{announcement.slug}/index.html",
            "/templates/announcement.html",
            locals: {page: announcement},
            locale: locale
    end
  end
end
Clone this wiki locally