Ruby on rails NameError:rspec for rails 3.2.8中未定义的局部变量或方法
在rails 3.2.8应用程序的应用程序控制器中定义了一种分配用户权限的方法。在应用程序\u controller\u spec.rb中,该方法有一个测试用例:Ruby on rails NameError:rspec for rails 3.2.8中未定义的局部变量或方法,ruby-on-rails,ruby-on-rails-3,rspec,Ruby On Rails,Ruby On Rails 3,Rspec,在rails 3.2.8应用程序的应用程序控制器中定义了一种分配用户权限的方法。在应用程序\u controller\u spec.rb中,该方法有一个测试用例: it "should assign_user_right" do ..... assign_user_rights session[:index_all_users].should be_true end 错误: Failure/Error: assign_user_rights
it "should assign_user_right" do
.....
assign_user_rights
session[:index_all_users].should be_true
end
错误:
Failure/Error: assign_user_rights
NameError:
undefined local variable or method `assign_user_rights' for #<RSpec::Core::ExampleGroup::Nested_1::Nested_4:0x57550e0>
失败/错误:分配用户权限
名称错误:
未定义的局部变量或方法“分配用户权限”#
由于assign_user_权限是在application controller中定义的,因此它应该在其规范文件中很容易看到。然而,情况并非如我们所见。代码可能有什么问题?谢谢。尝试使用
控制器。改为分配用户权限尝试使用控制器。改为分配用户权限
请检查控制器应用程序\u controller\u spec.rb是应用程序\u controller.rb的子类
get :assign_user_rights
response.should be_true
If it's not a sub class of application controller, call the method using controller_name.assign_user_rights
请检查控制器应用程序\u controller\u spec.rb是否为应用程序\u controller.rb的子类
If it's not a sub class of application controller, call the method using controller_name.assign_user_rights
您是否运行了rails生成rspec:install
。因此,您是否有内容类似于此文件的spec/spec_helper.rb
文件:?如果是,请确保方法名称在两个位置都正确。“由于assign_user_rights是在应用程序控制器中定义的,因此它应该在其规范文件中随时可见。”实际上,不是。示例运行的上下文与控制器的上下文完全不同self
在这两种上下文中是不同的。您是否运行了rails generate-rspec:install
。因此,您是否有内容类似于此文件的spec/spec_helper.rb
文件:?如果是,请确保方法名称在两个位置都正确。“由于assign_user_rights是在应用程序控制器中定义的,因此它应该在其规范文件中随时可见。”实际上,不是。示例运行的上下文与控制器的上下文完全不同<代码>自我
在这两种情况下是不同的。没有路由错误。我想,使用get需要在控制器的routes.rb中添加路由。没有路由错误。我想,使用get需要在控制器的routes.rb中添加route。