2011-07-20 3 views
1

je le test suivant:aucun itinéraire correspond à l'épreuve rspec

it "should respond with a json object" do 
      xhr :post, :create, :upload => @attr_upload, :format => :json 
      end 

Voici mes itinéraires:

resources :uploads, :except =>[:new, :show] 

J'ai une forme qu'un utilisateur peut télécharger des images en utilisant le jquery-File- plugin téléchargement:

<%= form_for @upload, :html => { :multipart => true } do |f| %> 
<div class="fileupload-buttonbar"> 
    <label class="fileinput-button"> 
     <span>Add files... or drop them to upload</span> 
      <%= f.file_field :photo, :id => "upload_photo" %>     
    </label> 
</div> 
<% end %> 

Dans mon contrôleur je charge le fichier et génère une réponse JSON:

def create 
    @upload = Upload.new(params[:upload]) 
    respond_to do |format| 
     if @upload.save 
     set_current_upload(@upload) 
     format.json {render :json => [ @upload.to_jq_upload ].to_json} 
     else 
     format.json {render :json => [ @upload.to_jq_upload.merge({ :error => "custom_failure" }) ].to_json} 
     end 
    end 
    end 

Quand je lance mon test, je reçois les éléments suivants:

No route matches {:action=>"update", :controller=>"uploads", :id=>#<Upload id: nil, created_at: nil, updated_at: nil, photo_file_name: nil, photo_content_type: nil, photo_file_size: nil, photo_updated_at: nil, uploadable_id: nil, uploadable_type: nil>} 

Quelqu'un peut-il me aider à obtenir ce test de travail? Je soumets à l'action de création alors pourquoi essaie-t-il d'aller à l'action de mise à jour?

Toute aide serait appréciée J'ai travaillé dessus pendant deux jours.

Répondre

0

La demande continue mise à jour l'action, pas créer, donc vérifiez vos modèles avec les formulaires générés, leurs URL

+0

Merci Mikhailov il y avait un objet dans la session et il a été à l'origine à soumettre au mettre à jour. – chell

Questions connexes