Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/facebook/8.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 4 Cucumber功能不报告Rails中的NoMethod错误_Ruby On Rails 4_Cucumber - Fatal编程技术网

Ruby on rails 4 Cucumber功能不报告Rails中的NoMethod错误

Ruby on rails 4 Cucumber功能不报告Rails中的NoMethod错误,ruby-on-rails-4,cucumber,Ruby On Rails 4,Cucumber,我正在将一个项目从RoR-3.2迁移到RoR-4.2,一次一个模型/控制器。我已经建立了一个“干净”的rails项目,以逐步接收现有代码,并正在修改Cumber特性和步骤。我遇到过这样一种情况:场景正在通过,但当在该场景中运行的控制器在开发中运行时,会出现以下错误: ruby 2.2.2p95 (2015-04-13 revision 50295) [x86_64-linux-gnu] * cucumber (1.3.19) * cucumber-rails (1.4.2) * de

我正在将一个项目从RoR-3.2迁移到RoR-4.2,一次一个模型/控制器。我已经建立了一个“干净”的rails项目,以逐步接收现有代码,并正在修改Cumber特性和步骤。我遇到过这样一种情况:场景正在通过,但当在该场景中运行的控制器在开发中运行时,会出现以下错误:

ruby 2.2.2p95 (2015-04-13 revision 50295) [x86_64-linux-gnu]
  * cucumber (1.3.19)
  * cucumber-rails (1.4.2)
  * declarative_authorization (0.5.7)
  * devise (3.5.1)
  * devise_security_extension (0.9.2)
  * rails (4.2.1)
用户控制器中的NoMethodError#create “超级用户”的未定义方法“hll_normalise”:字符串 提取的源(第21行附近): 19 def rolename=(名称) 20#hll_normalise是类字符串的本地扩展。 21写入属性(:rolename,name.hll\u normalize) 22完 20 Rails.root: /home/byrnejb/Projects/Software/theHeart/code/hll\u th\u main 应用 跟踪|框架跟踪 |完整跟踪 app/models/role.rb:21:in `罗莱奈 app/models/role.rb:33:in `添加\所需\角色' app/models/user.rb:34:in'bootstrap' libexec/bundle/lib/gems/activesupport-4.2.1/lib/active\u support/callbacks.rb:432:in `在make_lambda' libexec/bundle/lib/gems/activesupport-4.2.1/lib/active\u support/callbacks.rb:164:in `呼叫' libexec/bundle/lib/gems/activesupport-4.2.1/lib/active\u support/callbacks.rb:164:in `拦住 libexec/bundle/lib/gems/activesupport-4.2.1/lib/active\u support/callbacks.rb:504:in `呼叫' libexec/bundle/lib/gems/activesupport-4.2.1/lib/active\u support/callbacks.rb:504:in `阻塞呼叫' libexec/bundle/lib/gems/activesupport-4.2.1/lib/active\u support/callbacks.rb:504:in `每个。 我相信我知道是什么导致了潜在的错误,缺少对类字符串的自定义库扩展,以及如何修复它。在此之前,我希望揭示为什么这个错误不会导致场景在运行期间失败

失败的代码在关联模型中调用,并在创建用户时执行。因此,它应该会触发黄瓜运行中的失败。但事实并非如此。我在用户代码库中有三个rescue子句,没有一个不能重新提出任何捕获到的错误

 NoMethodError in UsersController#create 
 undefined method `hll_normalise' for "superuser":String 

Extracted source (around line #21): 

19  def rolename=(name) 
20    # hll_normalise is a local extension of class  String.
21    write_attribute(:rolename, name.hll_normalise)
22  end
20

Rails.root:
/home/byrnejb/Projects/Software/theHeart/code/hll_th_main
Application 
Trace <http://localhost:3000/users#> | Framework Trace 
<http://localhost:3000/users#> | Full Trace

<http://localhost:3000/users#> app/models/role.rb:21:in 
`rolename=' <http://localhost:3000/users#>
app/models/role.rb:33:in 

`add_required_roles' <http://localhost:3000/users#>
app/models/user.rb:34:in `bootstrap' <http://localhost:3000/users#>
libexec/bundle/lib/gems/activesupport-4.2.1/lib/active_support/callbacks.rb:432:in

`block in make_lambda' <http://localhost:3000/users#>
libexec/bundle/lib/gems/activesupport-4.2.1/lib/active_support/callbacks.rb:164:in

`call' <http://localhost:3000/users#>
libexec/bundle/lib/gems/activesupport-4.2.1/lib/active_support/callbacks.rb:164:in

`block in halting' <http://localhost:3000/users#>
libexec/bundle/lib/gems/activesupport-4.2.1/lib/active_support/callbacks.rb:504:in 

`call' <http://localhost:3000/users#>
 libexec/bundle/lib/gems/activesupport-4.2.1/lib/active_support/callbacks.rb:504:in

`block in call' <http://localhost:3000/users#>
libexec/bundle/lib/gems/activesupport-4.2.1/lib/active_support/callbacks.rb:504:in

`each' <http://localhost:3000/users#> . . .