2016-06-24 11 views
-1

Ich habe Benutzer, Foto, Video, Artikel Modelle. Ich möchte ein SavedforLater-Modell haben, mit dem Benutzer verschiedene Fotos, Videos und Artikel speichern können.Wie erstelle ich ein Savedforlater-Modell auf Schienen zum Speichern von Fotos, Videos und Artikeln?

+0

Was ist ein "GespeichertesLater-Modell"? – Leito

+0

Es wird eine Liste von Videos, Fotos und Artikeln sein, die sie gespeichert haben, ähnlich einem "Favoriten" -Modell, nehme ich an. –

+0

es ist nicht klar, das Problem – DennisCastro

Antwort

0

Ich denke, dass Sie eine polymorphe Zuordnung benötigen, um dies zu erreichen.

Read more here

Nach der polymorphen Tabelle einrichten, könnten Sie so etwas wie haben:

class SavedForLater < AR::Base 
    belongs_to :saveable, polymorphic: true 
    belongs_to :user 
end 

class Video 
    has_many :saved_videos, as: :saveable, dependent: :destroy 
end 

class Photo 
    has_many :saved_photos, as: :saveable, dependent: :destroy 
end 

class Article 
    has_many :saved_articles, as: :saveable, dependent: :destroy 
end 

class User 
    has_many :saved_for_laters 
end 

nun das erste Video speichern Sie so etwas wie tun könnte:

current_user.saved_for_laters.new(saveable: Video.first) 

OR der erste Artikel

current_user.saved_for_laters.new(saveable: Article.first) 
+0

Was füge ich zu jedem Video hinzu, um einen Link zu erstellen, um es speicherbar zu machen? –

+0

könnten Sie die Frage ein wenig klären? zu jedem Video hinzufügen, um einen Link zu erstellen? – oreoluwa

+0

Wenn die Videos paginiert sind und ich möchte, dass jedes Video ein Symbol hat, auf das geklickt werden kann und die video_id zur gespeicherten Datenbank hinzugefügt wird. Vielen Dank. –

Verwandte Themen