rubocop风格模型自我需要但触发警告

时间:2016-02-17 05:53:44

标签: ruby-on-rails ruby refactoring code-analysis rubocop

出于某种原因,rubocop正在扼杀我在我的模型中的代码,以正确地解决accepts_nested_attributes_for工作,如find或create。当我尝试删除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

enter image description here

2 个答案:

答案 0 :(得分:0)

这会让Rubocop高兴:

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

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

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

如果您想确保该公司始终存在,只需检查添加状态验证:

validates :company, presence: true

答案 1 :(得分:0)

为了解决查找或创建问题并成功通过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