Angular JS ngResource mit verschachtelten Ressourcen
Ich versuche angular JS, und ich möchte, um Daten aus einer verschachtelten definierte Ressource in meine rails-Anwendung.
Schrieb ich die folgenden Zeilen:
UserMission = $resource("/users/:user_id/user_missions/:id", {user_id: "@user_id", id: "@id"}, {update: {method: "PUT"}})
$scope.user_missions = UserMission.query()
und ich bekomme die folgende Fehlermeldung:
Processing by UsersController#show as JSON
Parameters: {"id"=>"user_missions"}
User Load (0.6ms) SELECT "users".* FROM "users" WHERE "users"."id" = $1 LIMIT 1 [["id", 1]]
User Load (0.5ms) SELECT "users".* FROM "users" WHERE "users"."id" = $1 LIMIT 1 [["id", "user_missions"]]
Completed 404 Not Found in 10ms
ActiveRecord::RecordNotFound (Couldn't find User with id=user_missions):
app/controllers/users_controller.rb:100:in `current_resource'
app/controllers/application_controller.rb:34:in `authorize'
Meine rails Routen organisiert sind, etwa so:
resources :users do
resources :user_missions
end
Ich denke, es kommt auf mich nicht zu verstehen, "@id". Es sagt, es kommt aus der "Daten-Objekt" aus dem angularjs-Website und ich bin mir nicht ganz sicher, was das bedeutet.
Jede Hilfe wäre geschätzt danke.
Update
Andere Frage. Ich habe nicht gefunden, alle Beispiele von Schienen mit angularjs mithilfe von verschachtelten Ressourcen (Beispiel Benutzer has_many :missions, through: :user_missions
) mit $resource
. Gibt es ein gutes Beispiel von angularjs Manipulation von verschachtelten Ressourcen (mit $resource
) mit ajax?
InformationsquelleAutor der Frage GTDev | 2013-02-25
Du musst angemeldet sein, um einen Kommentar abzugeben.
Lesen Sie meine Antwort zu Ihrer vorherigen Frage, Sie sollte auch die Werte für die Parameter in ein Objekt übergeben Sie als parameter im Aufruf, ich. e.:
InformationsquelleAutor der Antwort remigio
Ich war auch auf der Suche nach einem Weg, Griff verschachtelten Ressourcen mit ngResource. Ich bin nicht vertraut mit, wie Schienen arbeiten oder was Ihre Daten aussieht, aber das ist, was ich hatte:
Ich brauchte, um zu erreichen und greifen das verschachtelte array-Objekte für die Abfrage-Aktion. Mit der version 1.0 der Winkel ist dies nicht möglich. Doch mit der version 1.1 (getestet habe ich mit 1.1.3) ist es möglich, dies zu tun.
In meinem controller habe ich nur setup die Ressource wie dieses:
Der Schlüssel ist hier die
transformResponse
Funktion übergeben, die als Teil der Aktion-config. In 1.1 eine extra config-Elemente in dem action-config übergeben werden, nach unten in die$http
config für die Anfrage. Die$http
- Dienst ermöglicht einemtransformResponse
Funktion, die manipulieren können, die Daten zurückgegeben, die der Anfrage enthalten ist. Mit dieser Funktion kann ich erreichen, in der geschachtelten Struktur und Rückgabe des array brauche ich für die Aktion.Einen VORBEHALT zu beachten ist hier, dass die transformResponse Funktion erhält ein string-Wert, so müssen Sie zunächst die Daten analysieren, in was Sie erwarten. Die andere Einschränkung ist, dass Sie den tatsächlichen endgültigen Daten Wert, den Sie wollen, NICHT einen string. Obwohl erhalten Sie einen string-Wert, sollten Sie wieder die end-Daten-Wert erforderlich.
InformationsquelleAutor der Antwort bpedman
"Data-Objekt" bezieht sich auf Ihre
instance
Objekte ($Umfang.user_missions ist ein array dieser Objekte -- oder wäre eher, wenn Sie es tatsächlich geschafft, erfolgreich abrufen), und Sie können denkenUserMission
als dieclass
.Wenn Sie rufen Sie die query-Methode auf die
class
Objekt (UserMission
), in Ihrem Fall, es erfordert mindestens einen parameter, um zu wissen, welcher Benutzer dieUserMission
(s) abrufen.Den oben genannten würde eine "BEKOMMEN ALLE"
Informationen zu einem bestimmten
UserMission
( "BEKOMMEN EINE" ), würden Sie zu liefern haben beide IDsSinn macht?
InformationsquelleAutor der Antwort holographic-principle