首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在Rails 4上使用RuboCop::Cop::Rails::ApplicationRecord

如何在Rails 4上使用RuboCop::Cop::Rails::ApplicationRecord
EN

Stack Overflow用户
提问于 2020-07-29 19:47:26
回答 1查看 128关注 0票数 0

我想在Rails 4上使用ApplicationRecord Cop,我已经添加了'self.abstract_class = true‘。

代码语言:javascript
复制
class ApplicationRecord < ActiveRecord::Base
  self.abstract_class = true
end

这个文件被写成“minimum_target_rails_version 5.0”。

https://github.com/rubocop-hq/rubocop-rails/blob/master/lib/rubocop/cop/rails/application_record.rb

所以我创建了custom_cop,如下所示。

代码语言:javascript
复制
# frozen_string_literal: true

module CustomCops
  # @example
  #
  #  # good
  #  class Rails5Model < ApplicationRecord
  #    # ...
  #  end
  #
  #  # bad
  #  class Rails4Model < ActiveRecord::Base
  #    # ...
  #  end
  class MustApplicationRecord < RuboCop::Cop::Cop
    MSG = 'Models should subclass `ApplicationRecord`.'
    SUPERCLASS = 'ApplicationRecord'
    BASE_PATTERN = '(const (const nil? :ActiveRecord) :Base)'
    include RuboCop::Cop::EnforceSuperclass
    

    def autocorrect(node)
      lambda do |corrector|
        corrector.replace(node.source_range, self.class::SUPERCLASS)
      end
    end
  end
end

但我在运行rspec时遇到错误,如下所示。

代码语言:javascript
复制
Failure/Error:
         class MustApplicationRecord < RuboCop::Cop::Cop
           MSG = 'Models should subclass `ApplicationRecord`.'
           SUPERCLASS = 'ApplicationRecord'
           BASE_PATTERN = '(const (const nil? :ActiveRecord) :Base)'
           include RuboCop::Cop::EnforceSuperclass


           def autocorrect(node)
             lambda do |corrector|
               corrector.replace(node.source_range, self.class::SUPERCLASS)

NameError:
         uninitialized constant CustomCops::RuboCop

你知道如何解决这个错误吗,或者其他方法(比如覆盖'minimum_target_rails_version 5.0‘到'minimum_target_rails_version 4.0’)?

版本

代码语言:javascript
复制
Rails 4.2.8
ruby 2.6.6
rubocop 0.80.1
RSpec 3.9
EN

回答 1

Stack Overflow用户

发布于 2020-07-29 20:41:11

该错误将告诉您未定义RuboCop

在你定义你的警察之前,你需要在某个地方使用require 'rubocop'

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/63152918

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档