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