[RUBY] [Schienen] Listen Sie Instanzen mehrerer Modelle auf

Was willst du tun

Wie bei den Zeitplänen für YouTube und Facebook mussten wir die Möglichkeit haben, Beiträge und Anzeigen in absteigender Reihenfolge auf demselben Bildschirm anzuzeigen (normalerweise sind Anzeigen möglicherweise nicht in der Reihenfolge ihrer Erstellung, sondern um die Dinge einfach zu halten. (Vorausgesetzt, sie sind in der Reihenfolge der Schöpfung angeordnet).

Lassen Sie uns darüber nachdenken, wie Sie das Post-Modell (Post) und das Werbemodell (Advertisement) mit dem Controller gut verbinden und sie in der Ansicht parallel verarbeiten können.

Annahme

Ausführung

Spalten jedes Modells

#Buchungsmodell und Werbemodell haben unterschiedliche Spalten

#Postmodell (Post)
  t.integer "user_id"
  t.string "content"
  t.string "image"
  t.datetime "created_at"
  t.datetime "updated_at"

#Werbemodell (Werbung)
  t.integer "company_id"
  t.string "content"
  t.string "link_url"
  t.datetime "expired_date"
  t.datetime "created_at"
  t.datetime "updated_at"

Implementierungsmethode

timeline_controller.rb


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

  #Machen Sie jede mehrere Instanzen zu einem Array
  @instances = posts | ads
  #Sortieren Sie in absteigender Reihenfolge der Erstellung
  @instances.sort!{ |a, b| b.created_at <=> a.created_at }
end

erb:index.html.erb


<% @instances.each do |instance| %>
  <% if instance.class == "Post" %>
    <%#Post-Anzeige%> 
    <%= instance.user_id %>
    <%= instance.content %>
    <%= instance.image %>
  <% else %>
    <%#Anzeige anzeigen%> 
    <%= instance.company_id %>
    <%= instance.content %>
    <%= instance.link_url %>
  <% end %>
<% end %>

Recommended Posts

[Schienen] Listen Sie Instanzen mehrerer Modelle auf
[Schienen] Verwalten Sie mehrere Modelle mit einem Edelstein
[Rails] Liste der in Controller definierten Aktionen
[Rails 6.0] Informationen zum Batch-Speichern mehrerer Datensätze
[Hinweis] Rails-Fehlerliste
[Rails] Einführung von PAY.JP
Liste der Anfänger (Liste) Memo
Registrierung mehrerer WebMvcConfigurers
Alle Inhalte der Listenseite löschen [Ruby on Rails]
[Rails] So zeigen Sie eine Liste der Beiträge nach Kategorie an
Implementierung der Ajax-Entfernung in Rails
[Rails] Einführung in die Grundlagen der Entwicklung
Docker-Compose-Befehlsliste (für Rails)
Verwendung des booleschen Rails-Typs
[Rails] Implementierung der Kategoriefunktion
Verwenden Sie mit Rails 6.0 mehrere Datenbanken
[Ruby] Grundlegende Befehlsliste
[Rails] Implementierung der Tutorial-Funktion
Verwenden Sie mehrere Kontrollkästchen in Rails6!
[Rails] Implementierung einer ähnlichen Funktion
Liste der Speicherorte der Hosts