What generates articles_index_path ? I am porting some Rails 4 code to Rails 5 and I hit the following problem when using Rspec: articles_index_path is undefined.
routes.rb
Rails.application.routes.draw do
devise_for :users
root ‘static_pages#root’
resources :users
resources :articles
root to: “articles#index”
byebug
end
In /home/real-estate-data-mining/spec/requests/article_spec.rb I have
require ‘rails_helper’
RSpec.describe “Article”, type: :request do
describe “GET /article” do
it "works! (now write some real specs)" do
byebug
# get article_index_path
get articles_index_path
expect(response).to have_http_status(200)
end
end
end
When I examine the code environment around the byebug I see
[3, 12] in /home/real-estate-data-mining/spec/requests/article_spec.rb
3: RSpec.describe "Article", type: :request do
4: describe "GET /article" do
5: it "works! (now write some real specs)" do
6: byebug
7: # get article_index_path
=> 8: get articles_index_path
9: expect(response).to have_http_status(200)
10: end
11: end
12: end
(byebug) articles_path
“/articles”
(byebug) articles_index_path
*** NameError Exception: undefined local variable or method `articles_index_path’ for #RSpec::ExampleGroups::Article_2::GETArticle:0x00563031a8a0e0
nil
(byebug) article_index_path
*** NameError Exception: undefined local variable or method `article_index_path’ for #RSpec::ExampleGroups::Article_2::GETArticle:0x00563031a8a0e0
nil
(byebug)
This must be a common software pattern in Rails but, damn, I have Googled for what feels like a googol (it’s not a typo) hours without success trying to find what metaprogramming code would generate articles_index_path .