【发布时间】:2017-06-15 15:05:15
【问题描述】:
我正在使用 rails v5.1.0 和 rspec-rails 3.5.2 开发 Rails 引擎。
我有一个简单的功能规范:
require "rails_helper"
module MyEngineName
RSpec.feature "Some Feature", type: :feature do
it "user can navigate to page and blah blah", :js do
visit edit_job_path(1)
# .... other stuff
end
end
end
这会引发错误
undefined method `edit_job_path' for #<RSpec::ExampleGroups::SomeFeature:0x007fc098a570e8>
因为找不到路由助手edit_job_path。
为了让我的功能规范访问我的引擎路线,我需要做些什么特别的事情吗?
RSpec 文档mentions that you can specify the engine routes,但这似乎只适用于路由规范。当我将它添加到功能规范中时,它失败了undefined method 'routes'
谢谢!
编辑: 因为我的路线文件被请求,所以在此处添加。很短——
# config/routes.rb
MyEngineName::Engine.routes.draw do
root to: redirect("/my_engine_name/jobs")
resources :jobs
end
rake 的所有路由列表
> rake app:routes
....
....
Routes for MyEngineName::Engine:
root GET / redirect(301, /my_engine_name/jobs)
jobs GET /jobs(.:format) my_engine_name/jobs#index
POST /jobs(.:format) my_engine_name/jobs#create
new_job GET /jobs/new(.:format) my_engine_name/jobs#new
edit_job GET /jobs/:id/edit(.:format) my_engine_name/jobs#edit
job GET /jobs/:id(.:format) my_engine_name/jobs#show
PATCH /jobs/:id(.:format) my_engine_name/jobs#update
PUT /jobs/:id(.:format) my_engine_name/jobs#update
DELETE /jobs/:id(.:format) my_engine_name/jobs#destroy
【问题讨论】:
-
显示您的
routes.rb文件,至少前几行。 -
@chumakoff - 用它编辑了帖子。谢谢!
-
@chumakoff,你有没有搞定它?
标签: ruby-on-rails rspec rspec-rails rails-engines