Normalerweise, wenn wir Activebezogene Objekt verwenden müssen, schreiben wir einen solchen Code:Wie kann ich in Ruby on Rails ActiveRecord auf zugehöriges Objekt nach String-Feldnamen zugreifen?
main_object.related_object
Wo main_object
ist Instanz von MainObject
Klasse und related_object
ist Instanz von RelatedObject
, die über related_object_id
Feld MainObject
verbunden:
class MainObject < ActiveRecord::Base
:has_one => :related_object
end
class RelatedObject < ActiveRecord::Base
:belongs_to => :main_object
end
Anzahl der Beziehungen kann unterschiedlich sein und mehr als eins. Auch meine Aufgabe setzt benutzerdefinierte Abfragen voraus, bei denen ich nicht weiß, welche eine Beziehung verwendet wird.
Also, ich mag damit verbundene Ziel über seinen Namen erhalten, zum Beispiel:
main_object.relations['related_object']
Ist es möglich, in Ruby on Rails Activerecord?
Ich denke, es wie Polymorphismus scheint, aber in Richtung zurück .... und in meiner Vision ist es derzeit nicht möglich, mit nur Schienen, denn um zu erzeugen eine richtige Abfrage Schienen wissen nicht, Name eines Modells zu beziehen –
Aber könnten Sie die Aufgabe zu erklären, wissen Sie nicht einen Modellnamen der Beziehung, oder Sie wissen nicht nur eine feste Beziehung Name? –
Ja, ich weiß nicht feste Beziehung Name Modell kann mehrere Beziehungen haben, und verschiedene Beziehungen werden in verschiedenen Fällen verwendet werden –