2011-07-20 17 views
1

私は次のテストを持っている:ここでは何のルートが一致しない

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

は私のルートである:

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

私は、ユーザーがjqueryの、[ファイル]を使用して画像をアップロードできるという形を持っていますアップロードプラグイン:私のコントローラで

<%= 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 %> 

私は、ファイルをロードし、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 

私は私のテストを実行すると、私は次のように取得しています:

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>} 

誰も私は、このテスト作業を得るのを助けることはできますか? 私は作成アクションに提出していますが、なぜ更新アクションに行くのですか?

すべてのヘルプは、私は2日間これに取り組んできましたいただければ幸いです。

答えて

0

要求があったオブジェクトがセッションにあった、それはそれはに提出させたを作成するので、二重の生成されたフォーム、そのURL

+0

であなたのテンプレートをチェックしないおかげでミハイロフ、更新アクションに行きます更新。 – chell

関連する問題