2

Unter der polymorphen Assoziationen Beispiel von rubyonrails.org und unter Verwendung der Modelle unter:Abrufen einer Liste der gültigen Modelle für eine polymorphe Vereinigung

class Picture < ActiveRecord::Base 
    belongs_to :imageable, polymorphic: true 
end 

class Employee < ActiveRecord::Base 
    has_many :pictures, as: :imageable 
end 

class Product < ActiveRecord::Base 
    has_many :pictures, as: :imageable 
end 

Wie gehe ich über die gültigen imageable_type s zu finden?

z. damit es zurückkommt: [:employee, :product]

+2

Es ist diese Antwort von vor 6 Jahren http://stackoverflow.com/questions/2315239/finding-all-by-polymorphic- Typ-in-Schienen/2315469 # 2315469. Was macht es in Schleife über jedes Modell in Ihrem Projekt und die Methode reflect_on_all_associations sucht nach has_many oder has_one-Zuordnungen. –

Antwort

0

Einfach. Öffnen Sie einfach db/schema.rb und suchen für alle Tabellen mit der Säule:

:imageable_id 
+0

Sorry, ich hätte ** programmatisch ** in meine Frage einfügen sollen ... – pyepye

0

Meine Frage wäre, warum Sie das tun müssen? Ich bin mir nicht ganz sicher, aber ich glaube, Sie können gesucht werden:

Picture.select(:imageable_type).distinct.pluck(:imageable_type) 
+0

Ihre Frage ist eine gute Frage ... Vielleicht richte ich meine Modelle falsch ein ... Über Ihre Lösung wird es nicht funktionieren für mich, denn das würde nur die 'imageable_type's zurückgeben, die verwendet wurden ... Ich suche nach _ALL_ Typen, ob in Verwendung oder _could_. Ok, so wie ich schon sagte, vielleicht sind meine Modelle falsch aufgebaut. In Wirklichkeit habe ich eine Basis "Report", die polymorph ist, und dann konkrete Berichte (z. B. "ReportA", "ReportB", "ReportC" usw.). Was ich will, ist die Liste von 'Report *', die definiert ist, damit ich ein Dropdown erstellen kann, das den entsprechenden konkreten Bericht auswählt. – pyepye

Verwandte Themen