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
出于某种原因,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