Tra*_*vis 4 rspec routes ruby-on-rails rails-3.1
有没有人知道为什么当我运行我的规格它说这条路线不存在时,它显然是什么时候?
这是控制器中的相关代码:
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
Run Code Online (Sandbox Code Playgroud)
并在routes.rb中:
resources :jobs
Run Code Online (Sandbox Code Playgroud)
并在规格中:
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
Run Code Online (Sandbox Code Playgroud)
错误:
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"}
Run Code Online (Sandbox Code Playgroud)
当我跑步时,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"}
Run Code Online (Sandbox Code Playgroud)
job_path不是没有:id参数的有效路由.这应该工作:
job = assigns(:job)
response.should redirect_to job_path(job)
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
3565 次 |
| 最近记录: |