Ich habe eine kurze Frage über aktive Ressource. Wenn ich einen Benutzer Ressource haben, wenn ich einen Anruf machen wieSchienen activesource Nachrichten
User.find(1).put(:promote, :position => 'manager')
Nach dem api übersetzt sie in diesem Aufruf /users/1/promote.xml?position=manager
Meine Frage ist. Werden hier von activeResour tatsächlich zwei Anrufe getätigt? Finden Sie ein get, dann setzen Sie auf dieses Objekt, oder fügt .put an die .find bedeuten, dass es nur einen einzigen Anruf macht. Wenn das so ist, dann ist der einzige Grund für die .find das richtige URL-Format von/users /: id/promote ??
Ich konnte nicht in den Dokumenten finden, wo dies angegeben werden könnte, aber es ist die .find, die mich denken lassen, dass vielleicht zwei Serviceanrufe stattfinden?
Ich hoffe, dass dies nicht der Fall ist, das würde aus Sicht der Service-Leistung unglaublich arm scheinen. Da es alle xml-Nachrichten sind, tut die anfängliche Suche nichts für mich, außer dass der Aufruf von User.put (: promote ...) kein Benutzerobjekt, sondern einen Hash von Benutzerattributen zurückgibt ... also empfiehlt die API using User.find (x) .put ... Ich bin immer noch interessiert, weiß aber, ob jemand eine definitive Antwort hat – brad
Sie könnten einen Paket-Sniffer ausführen, z WireShark, um das definitiv zu testen. – Schrockwell
Die Sache ist, Rails muss überprüfen, ob User.find (1) tatsächlich existiert und gibt nil nicht zurück, andernfalls versucht es, einen put-Vorgang für einen nicht existenten Datensatz auszuführen. Dies führt mich zu der Annahme, dass es zwei Anrufe, aber ich stimme @Schrockwell, Packet Sniffer FTW – Scott