respond_with nicht funktioniert in ruby on rails. Warum?
Habe ich eine post-Methode namens join, der sollte Folgendes tun:
1) neues Objekt erstellen
2) reagieren mit einem json-Objekt
Hier ist mein code:
class GameController < ApplicationController
respond_to :json
def join
@p = Player.new(:name => params[:name])
@p.save!
respond_with({:uuid => @p.uuid})
end
end
Für einige Grund, die respond_with-Aufruf schlägt immer fehl mit dieser Fehlermeldung:
undefined method `model_name' for NilClass:Class
Wenn ich die respond_with-Aufruf etwas einfacher, ich bekomme immer noch Fehler, z.B.:
respond_with "hello"
Erträge dieser Fehler:
undefined method `hello_url' for #<GameController:0x1035a6730>
Was mache ich falsch?? Ich will nur senden Sie ein JSON-Objekt zurück!
PS, meine Routen-Datei sieht wie folgt aus:
match 'join' => 'game#join', :via => :post
- Du bist besser dran Notwasserung
respond_with
und nur mit plain oldformat.json { render :json }
etc. wenn Sie möchten, dass ein abweichen von den standard-controller-Aktionen. - Das ist genau das, was ich am Ende dabei 🙂
Du musst angemeldet sein, um einen Kommentar abzugeben.
Glaube ich, dass die
respond_with
Methoden erfordert, dass Sie passieren die Ressource (@p
) als argument. Hier ist Dokumentation für die Methode.Versuchen Sie dies:
Könntest du auch render json-so:
Auch funktionieren würde
respond_with {:uuid => @p.uuid}, :location => nil