Ich habe 3 Modelle User-Namen, Foto undWie werden polymorphe Ergebnisse eines Kindes und Elternteils zusammen mit einer has_many-Assoziation zusammengeführt?
Modell Bericht Report
ist eine polymorphe Klasse und verwendet wird, um Benutzer und Fotos und das Modell zu berichten User
mit dem Modal Photo
eine polymorphe Vereinigung hat.
So die Funktionalität ist ein Benutzer kann Fotos oder andere Benutzer melden.
Unten ist die Migrationsdatei von Report
.
class CreateReports < ActiveRecord::Migration
def change
create_table :reports do |t|
t.integer :user_id
t.integer :reported_id
t.string :reported_type, default: "User"
t.string :note, default: ""
end
end
end
und unten sind die Verbände
class User < ActiveRecord::Base
...
has_many :photos, as: :attachment
has_many :reports, dependent: :destroy
...
end
class Photo < ActiveRecord::Base
...
belongs_to :attachment, :polymorphic: true
end
class Report < ActiveRecord::Base
belongs_to :user
belongs_to :reported, polymorphic: true
end
zur Zeit verwende ich eine Abfrage wie unten angegeben Liste eines Benutzers entweder durch den Anwender zu erhalten oder durch ihre Fotos.
Also, ich möchte gerne wissen, wie kann ich dasselbe mit einer has_many Verbindung erreichen?
Bitte helfen Sie mir, wenn es einen besseren Weg gibt, den ich gleich erreichen oder korrigieren kann, wenn ich falsch liege.
Dank für die Ausgabe tun können, aber diese Rückkehr Abfrage wie folgt für mich SELECT 'reports'. * FROM 'reports' WHERE' reports'.reported_type' = 'User' UND 'reports'.reported_id' IN (273, 932, 1215, 1216, 1217)' Ich schätze, nur der Benutzer wählt daraus. –
Welche Version von Rails verwenden Sie? –
Ich verwende Schienen 4.2.4 –