ich mit einem hasMany/belongsTo Verein zwei Active Modelle haben:Active Mit belongs_to mit zwei Schlüsseln
class User < ActiveRecord::Base
has_many :letters
end
class Letter < ActiveRecord::Base
belongs_to :user
end
Das User-Modell ein revision_number Attribut hat, auf die ich die belongs_to Verein Umfang haben möchten, so der Brief ist einem Benutzer sowohl von user.id als auch von user.revision_number zugeordnet.
Ich habe versucht, die Verwendung von: Bedingungen Schlüssel wie in der API-Dokumentation dokumentiert:
class Letter < ActiveRecord::Base
belongs_to :user, :conditions => "revision_number = #{client_revision}"
end
aber versucht, Client-Revision auf dem Briefklasse aufrufen, nicht die Instanz von Brief. Kann mir jemand in die richtige Richtung zeigen, um die assignes_to-Assoziation richtig zu definieren?
Ich verwende das acts-as-revisable Plugin, um das Benutzermodell zu versionieren.
Wenn Sie möchten, können Sie den aktuellen Stand auf die neueste Version von updated_at setzen und eine has_one verwenden. Das würde vermeiden, dem Buchstabenmodell einen weiteren Fremdschlüssel hinzuzufügen. –
Hallo, Danke für Ihre Antworten. Ich benutze das acts_as_revisable Plugin. In meiner Datenbank werden Benutzer versioniert, sodass Änderungen am Benutzermodell überprüfbar sind. Briefe werden nicht versioniert. Der Text eines Briefs enthält gebundene Werte, z. B. den Namen des Benutzers. Wenn der Brief angezeigt wird, sollte er zum Zeitpunkt der Erstellung des Briefs den Namen des Kunden anzeigen. Vielleicht ein besseres Beispiel wären Produkte auf Rechnungen; Der Preis des Produkts muss in der Rechnung erfasst werden, damit beim Anzeigen einer Rechnung mehrere Monate später der korrekte Preis zum Zeitpunkt der Erstellung der Rechnung angezeigt wird. Danke, Chris –