Je développe un moteur Rails en utilisant rails v5.1.0
et rspec-rails 3.5.2
.Spécification des fonctionnalités RSpec impossible de trouver les routes pour Rails Engine
J'ai simple spec fonction:
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
Cela soulève l'erreur
undefined method `edit_job_path' for #<RSpec::ExampleGroups::SomeFeature:0x007fc098a570e8>
parce que l'aide de la route edit_job_path
ne peut pas être trouvé.
Y at-il quelque chose de spécial que je dois faire pour permettre à mes caractéristiques d'accéder à mes routes de moteur?
La documentation RSpec mentions that you can specify the engine routes, mais cela semble être uniquement pour les spécifications de routage. Quand je l'ai ajouté aux caractéristiques de fonctionnalité, il échoue avec undefined method 'routes'
Merci!
EDIT: Depuis que mon fichier de routes a été demandé, en l'ajoutant ici. Il est assez court -
# config/routes.rb
MyEngineName::Engine.routes.draw do
root to: redirect("/my_engine_name/jobs")
resources :jobs
end
Liste de toutes les routes de râteau
> 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
Montrez votre fichier 'routes.rb', au moins deux ou trois premières lignes. – chumakoff
@chumakoff - Edité le poste avec elle. Merci! – user2490003