Nun habe ich ein Modell mit einem has_many Verein:Rails, Überschreibung Zuordnungsverfahren
class Foo < ApplicationRecord
has_many :bars
end
Nun, ich weiß, dass wenn ich foo.bars
nennen es alle Bars lädt wo foo_id
foo.id
ist, nicht wahr? Aber ich möchte es überschreiben, so dass ich bars
basierend auf anderen Parametern laden könnte.
Diese answer lehrt irgendwie, wie die << (value)
Methode überschrieben wird. Aber ich weiß nicht, wie ich es in meinem Fall anwenden soll.
Wie könnte ich das tun ?? Etwas wie dieses:
class Foo < ApplicationRecord
has_many :bars do
def bars
self.owner = Bar.where(date: foo.date) #just an example
end
end
end
???
Noch nicht wirklich klar, was Sie versuchen zu tun. Soll die Assoziation beispielsweise auf 'foos.date = bars.date' und nicht auf' foos.bar_id = bars.id' basieren? –
Ja !! So etwas .. Wenn ich 'foo.bars' anrufe, möchte ich, dass alle Balken eines bestimmten Datums zurückgegeben werden und nicht alle Balken, die zu' foo' gehören. –
Wollen Sie wirklich eine formelle Assoziation? Vielleicht suchen Sie nur nach einer einfachen Methode ohne die gesamte Assoziationsmaschinerie. –