45 votes

Rails 3 renvoyant un HTTP 406 non acceptable?

J'ai le code de contrôleur suivant:

   def create
    @admin = Admin.new(params[:admin])
    respond_to do |format|
      if @admin.save
        redirect_to(@admin, :notice => 'Admin was successfully created.')
      else
        render :action => "new"
      end
    end
  end

  def update
    @admin = Admin.find(params[:id])
    respond_to do |format|
      if @admin.update_attributes(params[:admin])
        redirect_to(admin_admins_path, :notice => 'Admin was successfully updated.')
      else
        render :action => "edit"
      end
    end
  end
 

et les itinéraires suivants:

            admin_admins GET    /admin/admins(.:format)            {:action=>"index", :controller=>"admin/admins"}
           admin_admins POST   /admin/admins(.:format)            {:action=>"create", :controller=>"admin/admins"}
        new_admin_admin GET    /admin/admins/new(.:format)        {:action=>"new", :controller=>"admin/admins"}
       edit_admin_admin GET    /admin/admins/:id/edit(.:format)   {:action=>"edit", :controller=>"admin/admins"}
            admin_admin GET    /admin/admins/:id(.:format)        {:action=>"show", :controller=>"admin/admins"}
            admin_admin PUT    /admin/admins/:id(.:format)        {:action=>"update", :controller=>"admin/admins"}
            admin_admin DELETE /admin/admins/:id(.:format)        {:action=>"destroy", :controller=>"admin/admins"}
 

Maintenant, mis à part la dénomination légèrement whacky - les redirections entraînent toujours un 406 Inacceptable. Quel pourrait être le problème?

81voto

gertas Points 7113

Supprimer les blocs respond_to do |format| . Parce que vous ne spécifiez pas à quel format répondez-vous, par exemple format.html { #your code here } . Consultez la documentation de respond_to comment l'utiliser correctement.

10voto

ryanjones Points 1899

J'ai eu une erreur similaire, mon contrôleur répondait uniquement à JSON. Je devais aussi répondre au HTML pour que les tests fonctionnent (ce qui n’a de sens):

 class AdsController < ApplicationController
  respond_to :json, :html
 

J'ai reçu l'erreur en essayant de faire: assert_redirected_to ad_url (ad)

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X