Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ruby-on-rails/64.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 如何在自定义COP中识别全局Rails设置?_Ruby On Rails_Ruby_Rubocop - Fatal编程技术网

Ruby on rails 如何在自定义COP中识别全局Rails设置?

Ruby on rails 如何在自定义COP中识别全局Rails设置?,ruby-on-rails,ruby,rubocop,Ruby On Rails,Ruby,Rubocop,我的警察: #lib/rubocop/cop/myproject/myu cop.rb 需要“rubocop” RuboCop模块 模块通用作战图 模块MyProject 类MyCop

我的警察:

#lib/rubocop/cop/myproject/myu cop.rb
需要“rubocop”
RuboCop模块
模块通用作战图
模块MyProject
类MyCop
这个警察需要知道一些全局设置。例如,
Rails.logger.log\u级别

但我有错误:
1) 当我调用
Rails.logger.log\u level

2)
未初始化的常量Rails
-当我调用
时:Rails.logger.log\u level

这是可以做到的还是一个愚蠢的想法?

Rubocop是一个静态代码分析器。这意味着当您运行
rubocop
命令时,它不会加载任何ruby环境,包括Rails。它只是读取ruby文件并将其作为文本文件进行分析

因此,简短的回答是:不,它不能用Rubocop实现。

Rubocop是一个静态代码分析器。这意味着当您运行
rubocop
命令时,它不会加载任何ruby环境,包括Rails。它只是读取ruby文件并将其作为文本文件进行分析


因此,简短的回答是:不,这不能用Rubocop实现。

作为一个选项,您可以:

# lib/rubocop/cop/myproject/my_cop.rb

require 'rubocop'

module RuboCop
  module Cop
    module MyProject
      class MyCop < RuboCop::Cop::Cop
        # ...
      end
    end
  end
end
#lib/rubocop/cop/myproject/myu cop.rb
需要“rubocop”
需要\u相对“../../../../../../config/environment”
RuboCop模块
模块通用作战图
模块MyProject
类MyCop

并调用
::Rails.logger.level

作为一个选项,您可以执行以下操作:

# lib/rubocop/cop/myproject/my_cop.rb

require 'rubocop'

module RuboCop
  module Cop
    module MyProject
      class MyCop < RuboCop::Cop::Cop
        # ...
      end
    end
  end
end
#lib/rubocop/cop/myproject/myu cop.rb
需要“rubocop”
需要\u相对“../../../../../../config/environment”
RuboCop模块
模块通用作战图
模块MyProject
类MyCop
并调用
::Rails.logger.level