gpt4 book ai didi

ruby-on-rails - 为什么 brakeman-guard 提高 "NoMethodError: undefined method ` gsub'"

转载 作者:行者123 更新时间:2023-12-05 01:19:03 26 4
gpt4 key购买 nike

我在 Rails 5.2 应用程序中使用以下 gem。

# /Gemfile

group :development do

gem 'guard'
gem 'guard-spring'
gem 'guard-rspec'
gem 'brakeman', require: false
gem 'guard-brakeman'

# ...

end

# ...

Brakeman 与 Guard 合作得很好,但最近发生了一些变化。

> bundle exec guard 

... usual startup trace

------ brakeman warnings --------
00:52:13 - INFO - 6 brakeman findings
00:52:13 - ERROR - Guard::Brakeman failed to achieve its <start>, exception was:
> [#8fe733251410] NoMethodError: undefined method `gsub' for #<Brakeman::FilePath:0x00007f8d0f2c9ea0>
> [#8fe733251410] /Users/me/.rvm/gems/ruby-2.5.3@myapp/gems/guard-brakeman-0.8.3/lib/guard/brakeman.rb:206:in `decorate_warning'

...

00:52:13 - INFO - Guard::Brakeman has just been fired

查看 gem repo ,在引发此错误的行附近有一条评论

/lib/guard/brakeman.rb
# ...
# line 206
output << " near line #{warning.line}" if warning.line
if warning.file
# fix this ish or wait for brakeman to be fixed
filename = warning.file.gsub(@options[:app_path], '')
# ...

还有其他人遇到这个问题吗?我是否错误地配置了我的应用程序,这会阻止 Brakeman 使用 Guard?还是 gem 有问题?

最佳答案

之所以引发该错误,是因为最新版本的 Brakeman (4.5.1) 将 warning.file 的类从 String 更改为 Brakeman::文件路径

guard-brakeman 确实应该一直使用 Brakeman::Warning#relative_path,但不幸的是 it was (wrongly) removed in Brakeman 4.5.1 .

简而言之,请暂时固定到 Brakeman 4.5.0 并等待下一个 Brakeman 或 guard-brakeman 版本来解决这个问题。

我打开了https://github.com/guard/guard-brakeman/pull/36https://github.com/presidentbeef/brakeman/pull/1365 .

像这样的问题应该作为错误报告给项目,而不是在 StackOverflow 上询问。

更新:guard-brakeman 0.8.4 修复了这个问题。

关于ruby-on-rails - 为什么 brakeman-guard 提高 "NoMethodError: undefined method ` gsub'",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56623617/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com