guard error ActionController::UrlGenerationError:
guard error ActionController::UrlGenerationError:
我开始为我的 rails 应用程序编写测试,并计划在构建实际页面之前编写它们,但我遇到了麻烦。我搜索了堆栈溢出和 google 并尝试了几件事。该路线在我的 routes.rb 文件中指定,看起来像:
resources :welcome
我在测试代码中写入了以下内容。
require 'rails_helper'
require 'spec_helper'
RSpec.describe "Welcomes", type: :request do
it "checks the welcome page." do
visit welcome_path
end
end
我从守卫那里得到以下错误:
Failures:
1) Welcomes checks the welcome page.
Failure/Error: visit welcome_path
ActionController::UrlGenerationError:
No route matches {:action=>"show", :controller=>"welcome"} missing required keys: [:id]
# ./spec/requests/welcomes_spec.rb:6:in `block (2 levels) in <top (required)>'
Finished in 0.00347 seconds (files took 1.61 seconds to load)
1 example, 1 failure
Failed examples:
rspec ./spec/requests/welcomes_spec.rb:5 # Welcomes checks the welcome page.
Rails resources
路由集的 index
位于 welcomes_path
。 welcome_path
将引用特定的 Welcome
并需要一个 :id
参数。
如果欢迎页面只是一个登录页面而不是实际的资源,您可能只想 config/routes.rb
包含:
get 'welcome', to: 'welcome#index`
第一个welcome
是路径(host.com/welcome
),to:
参数是controller#action
.
Rails routing docs 很棒。如果这没有意义,请让他们仔细阅读。
将visit welcome_path
更改为get '/welcome'
我开始为我的 rails 应用程序编写测试,并计划在构建实际页面之前编写它们,但我遇到了麻烦。我搜索了堆栈溢出和 google 并尝试了几件事。该路线在我的 routes.rb 文件中指定,看起来像:
resources :welcome
我在测试代码中写入了以下内容。
require 'rails_helper'
require 'spec_helper'
RSpec.describe "Welcomes", type: :request do
it "checks the welcome page." do
visit welcome_path
end
end
我从守卫那里得到以下错误:
Failures:
1) Welcomes checks the welcome page.
Failure/Error: visit welcome_path
ActionController::UrlGenerationError:
No route matches {:action=>"show", :controller=>"welcome"} missing required keys: [:id]
# ./spec/requests/welcomes_spec.rb:6:in `block (2 levels) in <top (required)>'
Finished in 0.00347 seconds (files took 1.61 seconds to load)
1 example, 1 failure
Failed examples:
rspec ./spec/requests/welcomes_spec.rb:5 # Welcomes checks the welcome page.
Rails resources
路由集的 index
位于 welcomes_path
。 welcome_path
将引用特定的 Welcome
并需要一个 :id
参数。
如果欢迎页面只是一个登录页面而不是实际的资源,您可能只想 config/routes.rb
包含:
get 'welcome', to: 'welcome#index`
第一个welcome
是路径(host.com/welcome
),to:
参数是controller#action
.
Rails routing docs 很棒。如果这没有意义,请让他们仔细阅读。
将visit welcome_path
更改为get '/welcome'