в тесте rspec нет маршрутов - PullRequest
1 голос
/ 20 июля 2011

У меня есть следующий тест:

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

Вот мои маршруты:

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

У меня есть форма, с помощью которой пользователь может загружать изображения с помощью плагина jquery-file-upload:

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

Может кто-нибудь помочь мне сделать этот тест работающим?Я подчиняюсь действию создания, так почему оно пытается перейти к действию обновления?

Буду признателен за любую помощь. Я работаю над этим в течение двух дней.

1 Ответ

0 голосов
/ 20 июля 2011

Запрос выполняется обновить действие, а не создать , поэтому дважды проверьте ваши шаблоны с созданными формами, их URL-адреса

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...