有没有办法拒绝使用Rubocop编写自定义表达式?

我正在尝试安装一个缓存层,对于某些find_by_id之类的Rails模型方法,应该首选此缓存层。

我想使用Rubocop来确保新手不会使用q模型来写find_by_id,例如:不要写Customer.find_by_id而是被迫使用CustomerCache.find_by_id >

我可以做Rubocop吗?我对红宝石和Rails以及它的整个生态系统还很陌生

谢谢!

a172009839 回答:有没有办法拒绝使用Rubocop编写自定义表达式?

Rubocop是指示应该遵循或避免的Ruby编程模式的好工具。此特定用例不属于Rubocop层IMO,因为它不是Ruby编程模式,并且与您的特定实现有关。

您可以使用几种模式来处理此问题:

  1. 在有人调用该方法时添加弃用警告
class Customer < ApplicationRecord
  def find_by_id(*args)
    ActiveSupport::Deprecation.warn "Customers should be retrieved through CustomerCache"
    super
  end
end  
  1. 将方法调用委托给应该处理该对象的对象
class Customer < ApplicationRecord
  def find_by_id(*args)
    CustomerCache.find_by_id(*args)
  end
end  

也可以考虑完全删除该方法。

本文链接:https://www.f2er.com/3121042.html

大家都在问