Création d'un plan de site au format RSS / Atom avec Ruby on Rails

J'étais en charge de créer des flux RSS pour les mesures de référencement sur mon site, alors prenez note de la façon de le faire.

Pourquoi le RSS est-il des mesures SEO?

Avant cela, passons en revue le plan du site.

Un plan de site est un "fichier placé sur le serveur pour permettre au robot d'exploration de trouver plus facilement la page" Il existe les types de plans de site suivants.

Plan du site XML

Flux RSS / Atom

Le site que je suis en charge de développer est un site qui publie des informations sur les événements et attire des clients, donc ** Plus de nouvelles pages par jour ** → Je veux que vous exploriez les pages nouvelles et ajoutées ** dès que possible ** → J'ai décidé de mettre en place un flux RSS / Atom ainsi qu'un plan du site.

Création de flux RSS

Bibliothèque standard

Rails a une bibliothèque standard (https://docs.ruby-lang.org/ja/latest/library/rss.html) pour gérer RSS, et vous pouvez l'utiliser simplement en l'exigeant.

require 'rss'

Processus de création de flux

Et où vous voulez créer un flux RSS

##
# [param] event_list :Liste des entrées à mettre dans le flux
#
def create_rss_feed(event_list)
  #Cette fois Atom1.Créé au format 0
  feed = RSS::Maker.make('atom') do |maker|
    maker.channel.about = 'tag:sample.com:feed' #Un identifiant qui identifie de manière unique le flux. Peut-être quelque chose d'unique.
    maker.channel.title = "Nouvel évènement" #Titre du flux
    maker.channel.description = "Présentation des dernières informations sur l'événement." #Description du flux
    maker.channel.link = 'https://sample.com/' #URL du site
    maker.channel.author = 'Secrétariat de l'événement' #Créateur de flux
    maker.channel.date = .strftime('%Y-%m-%d %H:%M:%S') #Date et heure de la dernière mise à jour du flux

    event_list.each_with_index do |event|
      maker.items.new_item do |item|
        item.link = event.url #URL de la page de détail
        item.title = event.title #Titre de la page de détail
        item.date = event.start_time.strftime('%Y-%m-%d %H:%M:%S') #Dates des événements, dates de publication des articles, etc.
      end
    end
  end
  render xml: feed.to_xml
end

Si vous écrivez et exécutez un tel processus Le flux RSS est affiché sur le navigateur comme ceci! Cette fois, je l'ai créé dans un format appelé Atom, mais lors de sa création dans un format différent

RSS::Maker.make('atom')


 Par exemple, si RSS 2.0, cette partie "atom" doit être remplacée par "2.0".


## en conclusion
 La bibliothèque standard a été préparée, elle a donc été achevée en un rien de temps.
 Je pense juste que Rails est incroyable.


Recommended Posts

Création d'un plan de site au format RSS / Atom avec Ruby on Rails
[Ruby on Rails] Afficher le test avec RSpec
Remarques sur l'utilisation de FCM avec Ruby on Rails
[Ruby on Rails] Test du contrôleur avec RSpec
Présentation de Rspec avec Ruby on Rails x Docker
Publiez l'application avec ruby on rails
[Rails] Procédure de liaison de bases de données avec Ruby On Rails
Déterminez la page actuelle avec Ruby on Rails
J'ai fait un portfolio avec Ruby On Rails
Ruby on Rails élémentaire
Principes de base de Ruby on Rails
Association Ruby On Rails
[Ruby on Rails] Supprimer les images s3 avec Active Strage
Exécutez des tests Ruby on Rails RSpec avec des actions GitHub
Création de portfolio Ruby on Rails
Record d'apprentissage Ruby on rails -2020.10.04
[Ruby on Rails] Debuck (binding.pry)
Record d'apprentissage de Ruby on rails -2020.10.05
Formater Ruby avec VS Code
Record d'apprentissage Ruby on rails-2020.10.07 ②
[Rails] Spécifiez le format avec link_to
Record d'apprentissage Ruby on rails-2020.10.07 ①
Annuler la migration de Ruby on Rails
Record d'apprentissage de Ruby on rails -2020.10.06
Mémorandum de base Ruby on Rails
J'ai essayé d'installer le plugin lié à Ruby on Rails avec vim-plug
[Ruby on Rails] Ajouter une colonne avec des contraintes de clé externe
[Ruby on Rails] Implémenter la fonction de connexion par add_token_to_users avec l'API
Installez Ruby sur MSYS2 avec pacman
[Ruby on Rails] Read try (: [] ,: key)
Installation de Ruby + Rails sur Ubuntu 18.04 (rbenv)
[Ruby on Rails] Introduction de la fonction de pagination
Je souhaite ajouter une fonction de navigation avec ruby on rails
Création d'un environnement de développement pour Ruby on Rails à l'aide de Docker + VSCode (Remote Container)
Connaissance de base de Ruby on Rails
Progatez Ruby on Rails
Comment utiliser Ruby on Rails
Comprendre la couverture du code avec Rspec, le framework de test Ruby on Rails
Programmation avec ruby (en route)
Ruby on Rails compatible japonais-anglais i18n
[Ruby on Rails] Fonction de sortie CSV
Mémo de construction de l'environnement Ruby on Rails 6.0
Ruby On Rails conçoit un conflit de routage
[Ruby on Rails] Implémentation de la fonction de commentaire
[Ruby on Rails] DM, fonction de chat
[Ruby on Rails] Méthode d'aide pratique
Étapes pour créer un environnement de développement Ruby on Rails avec Vagrant
Installez ruby sur Ubuntu 20.04 avec rbenv
[Ruby on Rails] Arrêtez de "boucler jusqu'à ce que ..."
[Ruby on Rails] Créez un graphique circulaire des totaux par colonne avec Chartkick
[Ruby on Rails] Aucune erreur de méthode: méthode non définie `t'for # <ActiveRecord :: Migration: 〇〇〇〇> Traitement des erreurs
[Ruby on Rails] Erreur qui n'a pas pu trouver l'utilisateur avec ... après la déconnexion
[Ruby on Rails] Introduction des données initiales
[Ruby on Rails] Fonction de recherche (non sélectionnée)