Rails 4 API - Akzeptiert verschachteltes Attribut für Namespaced-Modell

8

Ich habe so etwas:

%Vor%

In meinem Auftragscontroller erlaube ich den order_lines_attributes param:

%Vor%

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?

    
JMac 14.10.2015, 19:11
quelle

1 Antwort

1

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%     
Andrey Deineko 15.12.2015 21:39
quelle