Hier können wir zwei AR-Modelle übernehmen haben:Wie Verknüpfen zweier verbindlicher Modelle in ActiveRecord?
class User < ApplicationRecord
has_many :proposals
has_many :concerns
end
class Job < ApplicationRecord
has_many :proposals
has_many :concerns
end
Vorschlag und Sorge sind beide Verbindungsmodelle zwischen User und Beruf:
class Proposal < ApplicationRecord
belongs_to :user
belongs_to :job
end
class Concern < ApplicationRecord
belongs_to :user
belongs_to :job
end
Was ich versuche zu lösen, wie Vorschläge und Anliegen verknüpfen durch sowohl Benutzer als auch Job. I.e. Ich möchte etc eifrig Laden verwenden:
proposals.preload(:concerns).map do |proposal|
# proposal.concerns are preloaded here
# and all concerns have same user and job
end
Meine aktuelle Lösung ist nur einfache concerns
Methode, die über Bedenken Nachschlag - es ist unwirksam, da tun N + 1 Abfragen.
Ich möchte vermeiden, redundanten Fremdschlüssel zu einem der Beitritt Modelle hinzufügen.
abfragt, würden diese Bedenken alle Benutzer betrifft, mit allen Arbeitsplätzen verbunden. – MikDiet
dann können Sie versuchen, eine Bedingung auf "Jobs" –
hinzuzufügen, was genau Sie wollen –