rubocop 样式模型自需要但触发警告

rubocop style model self needed but triggering warning

出于某种原因,rubocop 对我模型中的这段代码感到窒息,无法正确处理 accepts_nested_attributes_for 以像查找或创建一样工作。当我试图删除 self 调用时,它爆炸了。在这一点上,在我关闭那个该死的警察之前,我要听从专家的意见。想法?

class Job < ActiveRecord::Base
  belongs_to :company
  before_validation :find_company

  accepts_nested_attributes_for :company

  private

  def find_company
    if self.company
      self.company = Company.where(email: self.company.email).first_or_initialize
    end
  end
end

这会让 Rubocop 高兴:

def find_company
  self.company = Company.where(email: company.email).first_or_initialize if company
end

P.S。我没有看到此方法背后的逻辑 - 您正在检查是否存在公司关联,如果是 您将再次分配与同一家公司的关联

方法没有意义 - 我认为你最好完全删除它。

如果您想确保该公司始终存在,只需选中添加存在验证:

validates :company, presence: true

为了解决查找或创建问题并成功通过 rubocop,此变体解决了问题

  private

  def find_company
    existing_company = Company.where(email: company.email) if company
    self.company = existing_company.first if existing_company.count > 0
  end