小编use*_*964的帖子

验证关联的唯一性

鉴于以下课程:

class Candidate
  has_many :applications
  has_many :companies, :through => :job_offers
end

class JobOffer
  belongs_to :company
end

class Application
  belongs_to :candidate
  belongs_to :job_offer
end
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述

如何在Rails上验证之前的语句(在图像中)?

在更新时,在Application上添加以下验证将不起作用:

def validate_uniqueness_of_candidate_within_company
  errors.add(:job_offer_id, "...") if candidate.companies.include?(company)
end
Run Code Online (Sandbox Code Playgroud)

当尝试将应用程序更改为同一公司候选人的其他JobOffer时,会导致该公司退回.

我也试过在应用程序上做这样的事情:

validates_uniqueness_of :user_id, :scope => {:job_offer => :company_id}
Run Code Online (Sandbox Code Playgroud)

但它也没有用.任何想法解决这个问题,而不必使用10行蹩脚的代码?

ruby-on-rails ruby-on-rails-3

13
推荐指数
1
解决办法
1万
查看次数

标签 统计

ruby-on-rails ×1

ruby-on-rails-3 ×1