Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ruby-on-rails/52.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails NameError:rspec for rails 3.2.8中未定义的局部变量或方法_Ruby On Rails_Ruby On Rails 3_Rspec - Fatal编程技术网

Ruby on rails NameError:rspec for rails 3.2.8中未定义的局部变量或方法

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

在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
     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。