【发布时间】:2014-04-25 12:55:15
【问题描述】:
我正在创建一个简单的 API 来对联系人执行 CRUD 操作。 :index、:show、:create 和 :update 方法工作正常,它们都通过了各自的请求 rspec 测试。该问题仅出现在:destroy 方法中。 :destroy 操作如下所示:
class Api::V1::ContactsController < ApplicationController
def destroy
@contact = Contact.find(params[:id])
@contact.destroy
respond_to do |format|
format.json {render action: :index }
end
end
end
测试DELETE 请求的规范如下所示:
describe "DELETE /api/v1/contacts/:id" do
before(:each) do
@contact = FactoryGirl.create(:contact)
end
it "it should have a status code of 200" do
delete "/api/v1/contacts/#{@contact.id}"
expect(response.status).to eq(200)
end
it "It should delete a contact" do
expect{
delete "/api/v1/contacts/#{@contact.id}"
}.to change(Contact, :count).by(-1)
end
end
当我运行测试时,我收到以下错误消息:
Failure/Error: delete "/api/v1/contacts/#{@contact.id}"
ActionController::UnknownFormat:
ActionController::UnknownFormat
# ./app/controllers/api/v1/contacts_controller.rb:67:in `destroy'
respond_to do |format| 是contacts_controller.rb 中的第 67 行
【问题讨论】:
标签: ruby-on-rails ruby rspec actioncontroller