2016-03-31 5 views
0

Ich bin unten Fehler bekommen, wenn ich navigieren zu site.io/#/users/1/quizzes/1Action :: UnknownFormat in Rails als API anzeigen Aktion

ActionController::UnknownFormat (ActionController::UnknownFormat): 
    app/controllers/quizzes_controller.rb:7:in `show' 

Und die Konsole zeigt eine 406 not acceptable Fehler

Meine Gedanken
Ich vermute es ist etwas falsch mit aber der Fehler ist so unspezifisch Ich bin nicht in der Lage herauszufinden, was falsch ist.

Quiz-Controller < - SHOW ACTION FUNKTIONIERT NICHT

def show 
    @user = User.find(params[:user_id]) 
    @quiz = @user.quizzes.find(params[:id]) 
    respond_with @user, @quiz 
end 

routes.rb

resources :users do 
    resources :quizzes do 
    resources :questions 
    end 
end 

Es ist seltsam, dass ich einen Fehler mit der Show Aktion, weil ein bin immer sehr ähnlich Create Aktion funktioniert gut.

Quizzes-Controller < - CREATE ACTION WORKS

def create 
    @user = User.find(params[:user_id]) 
    @quiz = @user.quizzes.create(quiz_params) 
    respond_with @user, @quiz 
end 

Ich habe mehrere Stunden damit verbracht, um dies herauszufinden. Es kommt wahrscheinlich von meinem mangelnden Verständnis der Reaktion mit JSON. Jeder Rat würde sehr geschätzt werden!

+0

Versuchen Hinzufügen: defaults => {: format => 'json'} auf Ihre Route –

Antwort

0

Ihr Code scheint mir gut. Ich bin nicht wirklich vertraut mit respond_with und auch, dass es funktioniert einmal scheint ein bisschen seltsam.
Aber vielleicht kann dieser Codeausschnitt Ihnen helfen.

diese Zeile hinzufügen application/controller/application_controller.rb

respond_to :json 

Jetzt gilt Ihre Responder das Format für alle Aktionen JSon. Sie können es auch pro Controller angeben. Was auch immer dir am besten passt.

dann Ihre show Methode ändern

def show 
    @user = User.find(params[:user_id]) 
    @quiz = @user.quizzes.find(params[:id]) 
    render json: {user: @user, quiz: @quiz}, status: :ok 
end 

und Sie erhalten eine Hash wie folgt erhalten:

{"user":{"id":1,"name":"foo","phone":"123","address":"baa","created_at":"2016-03-30T08:30:42.586Z","updated_at":"2016-03-30T08:30:42.586Z"},"quiz":{"id":2,...}} 
Verwandte Themen