通过Hartl的Rails教程和第5.4.2章我无法通过某项测试。
这是错误:
1) UserPages GET /user_pages works! (now write some real specs)
Failure/Error: get user_pages_index_path
NameError:
undefined local variable or method `user_pages_index_path' for #<RSpec::Core::ExampleGroup::Nested_1::Nested_1:0x007f9106e2cce8>
# ./spec/requests/user_pages_spec.rb:7:in `block (3 levels) in <top (required)>'
以下是user_pages_spec.rb中的测试:
require 'spec_helper'
describe "UserPages" do
describe "GET /user_pages" do
it "works! (now write some real specs)" do
# Run the generator again with the
# --webrat flag if you want to use webrat methods/matchers
get user_pages_index_path
response.status.should be(200)
end
end
end
这是路线文件:
get "users/new"
root 'static_pages#home'
match '/signup', to: 'users#new', via: 'get'
match '/help', to: 'static_pages#help', via: 'get'
match '/about', to: 'static_pages#about', via: 'get'
match '/contact', to: 'static_pages#contact', via: 'get'
match 'static_pages/home', to: 'static_pages#home', via: 'get'
赞赏任何输入
抱歉格式化。在该部分的最开始是一个spec文件:spec / requests / user_pages_spec.rb
require 'spec_helper'
describe "User pages" do
subject { page }
describe "signup page" do
before { visit signup_path }
it { should have_content('Sign up') }
it { should have_title(full_title('Sign up')) }
end
end
我收到以下错误:
失败/错误:获取user_pages_index_path NameError:未定义的局部变量或方法`user_pages_index_path'用于#
这是rake路线输出:
Prefix Verb URI Pattern Controller#Action
users_new GET /users/new(.:format) users#new
root GET / static_pages#home
signup GET /signup(.:format) users#new
help GET /help(.:format) static_pages#help
about GET /about(.:format) static_pages#about
contact GET /contact(.:format) static_pages#contact
static_pages_home GET /static_pages/home(.:format)static_pages #home
答案 0 :(得分:0)
只需删除“user_pages_spec.rb”中的内容即可 因为没有这样的方法叫做 user_pages_index_path
所以,这应该是什么
<强> user_pages_spec.rb 强>
require 'spec_helper'
describe "User pages" do
subject { page }
describe "signup page" do
before { visit signup_path }
it { should have_content('Sign up') }
it { should have_title(full_title('Sign up')) }
end
end
此外,在 /config/routes.rb 文件
SampleApp::Application.routes.draw do
get "users/new"
root 'static_pages#home'
match '/signup', to: 'users#new', via: 'get'
match '/help', to: 'static_pages#help', via: 'get'
match '/about', to: 'static_pages#about', via: 'get'
match '/contact', to: 'static_pages#contact', via: 'get'
.
.
.
end
答案 1 :(得分:0)
我遇到了同样的问题,我只是注释掉了“user_pages_spec.rb”文件。当我这样做时,我通过了所有测试。这是正确的答案,我不知道,但正如我所说,它允许测试通过。