2012-07-30 122 views
0

林測試我的應用程序使用RSpec下一個簡單的代碼:的ActiveRecord :: RecordNotFound:

require 'spec_helper' 

    describe CarsController do 
    describe "GET 'new'" do 
      it "should be successful" do 
      visit new_user_car_path(:user_id=>"28") 
      response.should be_success 
      end 
     end 
    end 

當我運行它,我得到這個消息

Failure/Error: visit new_user_car_path(:user_id=>"28") 
ActiveRecord::RecordNotFound: 
    Couldn't find User with id=28 
# ./app/controllers/cars_controller.rb:3:in `new' 
# ./spec/controllers/tanking_logs_controller_spec.rb:6:in `block (3 levels) in <top (required)>' 

我不知道什麼會發生與這一點,在我的路線出現new_user_car_path,看...

user_cars GET /users/:user_id/cars(.:format)        cars#index 
         POST /users/:user_id/cars(.:format)        cars#create 
     new_user_car GET /users/:user_id/cars/new(.:format)       cars#new 
     edit_user_car GET /users/:user_id/cars/:id/edit(.:format)      cars#edit 
      user_car GET /users/:user_id/cars/:id(.:format)       cars#show 
         PUT /users/:user_id/cars/:id(.:format)       cars#update 
         DELETE /users/:user_id/cars/:id(.:format)       cars#destroy 

,這是我的routes.rb是否需要

Estaciones::Application.routes.draw do 
root :to => "static_pages#home" 
match '/contact', :to=>'static_pages#contact' 
match '/about', :to=>'static_pages#about' 
devise_for :users 
resources :gas_stations 
    resources :users do 
     resources :cars do 
     #resources :tanking_logs 
     end 
    end 
... 
+1

只是爲了排除簡單的東西,你有沒有嘗試重新啓動服務器?或者你是否有route.rb中的任何路徑是「掛載」的? – Catfish 2012-07-30 20:15:50

+0

是的,我重啓了很多次 – Asantoya17 2012-07-30 20:18:40

回答

1
new_user_car GET /users/:user_id/cars/new(.:format) 

你的路徑需要爲了工作:user_id PARAM,和你沒有提供的。

編輯根據您的意見,如果你使用Factory Girl Rails你可以建立一個工廠來創建用戶,然後這樣做:

user = Factory.create :user 
visit new_user_car_path(:id => user.id) 

否則,您可以手動創建它們:

user = User.create!(:name => "Joe", ...) 
visit new_user_car_path(:id => user.id) 
+0

我嘗試這樣做: 訪問new_user_car_path(:USER_ID => 「28」) 但是當我運行我的測試表明: 故障/錯誤:參觀new_user_car_path(:USER_ID =>」 28「) ActiveRecord :: RecordNotFound: 找不到id = 28的用戶 – Asantoya17 2012-07-30 20:49:14

+0

您是否隨機鍵入」28「?你需要一個真實的用戶ID。顯然它正在爲該用戶進行搜索。你應該看看你的汽車控制器,你會看到它進行搜索。 – MrDanA 2012-07-30 22:03:02

+0

user_id 28存在 – Asantoya17 2012-07-30 22:12:06

相關問題