[RUBY] [Rails] Répertorier les instances de plusieurs modèles

Que veux-tu faire

Comme les chronologies YouTube et Facebook, nous avons maintenant besoin de la possibilité d'afficher les publications et les publicités sur le même écran dans l'ordre décroissant (généralement, les publicités peuvent ne pas être dans l'ordre de création, mais pour plus de simplicité (En supposant qu'ils sont disposés dans l'ordre de la création).

Envisagez une méthode d'acquisition du modèle de publication (Post) et du modèle de publicité (Publicité) avec le contrôleur et de les traiter en parallèle dans la vue.

supposition

version

Colonnes de chaque modèle

#Le modèle d'affichage et le modèle publicitaire ont des colonnes différentes

#Modèle de poste (poste)
  t.integer "user_id"
  t.string "content"
  t.string "image"
  t.datetime "created_at"
  t.datetime "updated_at"

#Modèle publicitaire (publicité)
  t.integer "company_id"
  t.string "content"
  t.string "link_url"
  t.datetime "expired_date"
  t.datetime "created_at"
  t.datetime "updated_at"

Méthode de mise en œuvre

timeline_controller.rb


def index
  posts = Post.all
  ads = Advertisement.all

  #Transformez chaque instance multiple en un seul tableau
  @instances = posts | ads
  #Trier par ordre décroissant de création
  @instances.sort!{ |a, b| b.created_at <=> a.created_at }
end

erb:index.html.erb


<% @instances.each do |instance| %>
  <% if instance.class == "Post" %>
    <%#Affichage du message%> 
    <%= instance.user_id %>
    <%= instance.content %>
    <%= instance.image %>
  <% else %>
    <%#Afficher la publicité%> 
    <%= instance.company_id %>
    <%= instance.content %>
    <%= instance.link_url %>
  <% end %>
<% end %>

Recommended Posts

[Rails] Répertorier les instances de plusieurs modèles
[Rails] Gérez plusieurs modèles à l'aide de la gemme de devise
[rails] Liste des actions définies dans Controller
[Rails 6.0] À propos de la sauvegarde par lots de plusieurs enregistrements
[Note] Liste des erreurs de rails
[Rails] Présentation de PAY.JP
Liste des mémos débutants (Liste)
[Rails] Volume qui affiche les favoris et une liste de favoris
Enregistrement de plusieurs WebMvcConfigurers
Supprimer tout le contenu de la page de liste [Ruby on Rails]
[Rails] Comment afficher une liste de messages par catégorie
Implémentation de la suppression d'ajax dans Rails
[Rails] Introduction aux principes de base du dispositif
liste de commandes docker-compose (pour Rails)
Utilisation du type booléen Rails
[Rails] Implémentation de la fonction de catégorie
Utilisez plusieurs bases de données avec Rails 6.0
[Ruby] Liste des commandes de base
[Rails] Implémentation de la fonction tutoriel
Utilisez plusieurs cases à cocher dans Rails6!
[Rails] Implémentation d'une fonction similaire
Liste des emplacements des fichiers hôtes