2011-10-17 7 views
4

仕様を実行すると、明らかにこのルートが存在しないという理由は誰にも分かりませんか?Rails 3.1でRSpecルートが存在しないことを除いて、エラーと一致するルートはありません

class JobsController < ApplicationController 
    before_filter :find_job, :only => [:show, :edit] 
    respond_to :html, :json 
    def show 
    respond_with @job 
    end 
    def find_job 
    @job = Job.find(params[:id]) 
    end 
end 

そしてroutes.rbを中:

resources :jobs 

と仕様で:

def valid_attributes 
    {} 
    end 

    describe "POST create" do 
    context "with valid params" do 
     it "redirects to the jobs path" do 
     post :create, :job => valid_attributes 
     response.should redirect_to job_path 
     end 
    end 
    end 

エラー:

ここ

は、コントローラに関連するコードであります

1) JobsController when logged in as administrator POST create with valid params redirects to the jobs path 
    Failure/Error: response.should redirect_to job_path 
    ActionController::RoutingError: 
     No route matches {:action=>"show", :controller=>"jobs"} 

私はrake routesを実行すると、私が得る:

jobs GET /jobs(.:format)      {:action=>"index", :controller=>"jobs"} 
     POST /jobs(.:format)      {:action=>"create", :controller=>"jobs"} 
new_job GET /jobs/new(.:format)     {:action=>"new", :controller=>"jobs"} 
edit_job GET /jobs/:id/edit(.:format)    {:action=>"edit", :controller=>"jobs"} 
    job GET /jobs/:id(.:format)     {:action=>"show", :controller=>"jobs"} 
     PUT /jobs/:id(.:format)     {:action=>"update", :controller=>"jobs"} 
     DELETE /jobs/:id(.:format)     {:action=>"destroy", :controller=>"jobs"} 

答えて

9

job_path:idパラメータなしで有効なルートではありません。これはうまくいくはずです:

job = assigns(:job) 
response.should redirect_to job_path(job) 
+0

それは私のためにも、ありがとう! –

関連する問題