0
我正在用Rails 4.0構建RESTful JSON API並將mongoid用作我的數據庫。我正在使用RSpec測試我的一個控制器的銷燬操作。但是,當我運行我的測試時,我收到ActionController :: UrlGenerationError:因爲Rails無法找到相應的路由。奇怪的是我的destroy動作在我的routes.rb文件中明確定義,並且我的其他控制器在同一資源內的動作正常工作。在Rails API控制器中測試銷燬行爲
describe "DELETE 'delete credit cards'" do
before do
@credit = CreditCard.new(cc_last4: Random.rand(1234))
end
it "should return a successful json response" do
params = {comicbook_uid: @user.comicbook_uid.to_s ,
notebook_token: @user.comicbook_token,
cc_id: @credit.id, format: :json }
delete :destroy, params
body_hash = JSON.parse response.body
expect(body_hash["success"]).to eql true
end
是被我的終端產生的錯誤是這樣的:
Failure/Error: delete :destroy, params
ActionController::UrlGenerationError:
No route matches {:comicbook_uid=>"52decf924761625bdf000000", :comicbook_token=>"sfsakjhfk",
:cc_id=>BSON::ObjectId('52decf924761625bdf020000'),
:format=>:json, :controller=>"credit_cards",
:action=>"destroy"}
我的信用卡資源路線是這樣的:
resources :credit_cards, only: [:create, :index, :destroy],
:defaults => { :format => 'json'}
預先感謝您,希望能儘快幫助我!
我在哪裏需要傳遞id屬性?查看我的控制器規範,我在創建用戶的文件頂部有一個before塊。因此,此處之前的街區是毫無道理的。我知道我需要傳遞id屬性,但我無能爲力,無法傳遞它。感謝您的幫助。 – GabeLafontant
你是在銷燬用戶還是信用卡?這似乎是你需要先創建一個信用卡,然後再試圖銷燬它... – PinnyM