2015-04-06 61 views
1

我已經寫在軌葡萄API更新操作,如下所示:葡萄API Put請求接收405錯誤只RSPEC

put do 
    work = Work.find(permitted_params[:id]) 
    work.title = permitted_params[:title] 
    work.date = permitted_params[:date] 

    work.save! 
end 

測試它與招搖文檔在瀏覽器中,我得到成功。

我有一個規範,它工作不正確。儘管瀏覽器取得了成功,但我的測試失敗了,因爲它表示它在響應中獲得了405分。這是規範:

describe "PUT /api/v1/works/work_id" do 
    let(:user) { FactoryGirl.create(:user) } 
    let(:collection) { FactoryGirl.create(:collection, user: user) } 
    let(:work) { FactoryGirl.create(:work, collection: collection) } 
    let(:work_data) do 
    { 
     collection: collection.id, 
     title: "Lorem ipsum dolor sit amet", 
     date: 1492, 
     place: "Chicago", 
    } 
    end 

    describe "Modify title" do  
    let(:work_title) { "gfd" } 

    before :each do 
     work_data[:title] = work_title 
     put "/api/v1/works/#{work.id}", work_data 
     work.reload 
    end 

    it "returns success" do 
     expect(response).to be_success 
    end 

    it "updates the title of the work" do 
     expect(work.title).to eql(work_title) 
    end 
    end 
end 

我很好奇爲什麼它似乎工作正常,但我仍然在我的測試中得到一個405錯誤。

編輯以包括從所述服務器響應 { 「X框-選項」=> 「SAMEORIGIN」, 「X-XSS-保護」=> 「1;模式=塊」,「 X-Content-Type-Options「=>」nosniff「,」Allow「=>」OPTIONS,GET,HEAD「,」Content-Type「=>」text/plain「,」Content-Length「=>」0「 ,「Cache-Control」=>「no-cache」,「X-Request-Id」=>「5edd38be-289d-4e97-875d-2461389a746d」,「X-Runtime」=>「0.088867」} #

+0

請張貼測試日誌上述要求。他們在'logs/test.log'中可用 – bsvin33t

+0

這看起來像我大多是垃圾,我無法真正理解。有沒有可以添加的寶石來提高讀數?只需在日誌中打印出響應,我就能確定405錯誤。 – amhasler

+0

您可以刪除日誌並重新運行一個可以提供405的規格。從中可以看到單個請求的失敗消息。 – bsvin33t

回答