Ich habe so etwas:
%Vor% In meinem Auftragscontroller erlaube ich den order_lines_attributes
param:
Ich mache dann einen Post-Call zu der entsprechenden Route, die einen Auftrag und alle verschachtelten order_lines
erstellen wird. Diese Methode erstellt eine Reihenfolge erfolgreich, aber einige Schienen magic versucht, die verschachtelten order_lines auch zu erstellen. Ich bekomme diesen Fehler:
Uninitialized Constant OrderLine
.
Ich brauche meinen Aufruf accepts_nested_attributes_for
, um zu erkennen, dass OrderLine
mit Namespaced in Api::V1::OrderLine
steht. Stattdessen sucht Schienen hinter den Kulissen nur OrderLine
ohne den Namensraum. Wie kann ich dieses Problem beheben?
Ich bin mir ziemlich sicher, dass die Lösung hier nur darin besteht, dass Rails den vollständigen geschachtelten / namespaced Klassennamen kennt.
Aus der Dokumentation:
:
class_name
Geben Sie den Klassennamen der Assoziation an. Benutze es nur wenn dieser Name nicht aus dem Assoziationsnamen abgeleitet werden kann. Damit sources_to: author wird standardmäßig mit der Author-Klasse verknüpft, aber Wenn der echte Klassenname "Person" lautet, müssen Sie ihn mit diesem Namen angeben Option.
Ich sehe normalerweise, dass die Option class_name die Zeichenfolge (Klassenname) als Argument verwendet, aber ich bevorzuge die Konstante, nicht string:
%Vor%Tags und Links ruby-on-rails ruby-on-rails-4