2011-01-23 122 views
2

我正在研究Ruby on Rails web应用程序。我想一起验证多个领域的独特性。我怎样才能做到这一点?三个不同领域的独特

例如:我有一个名为waiting三个领域模型:

project_idcategory_iduser_id

我想确保我不会有两个相同的行中所有三个字段。

回答

-1

它不漂亮,但这个工作对我来说:

class Waiting < ActiveRecord::Base 
    validate :must_be_unique 

    def must_be_unique 
    if self.class.where(project_id: project_id, category_id: category_id, user_id: user_id).exists? 
     errors.add(:base, 'Must be unique') 
    end 
    end 
end 

当然,你可以只使用一个独特的密钥在你的数据库架构,然后赶上你需要极少的情况下相关的例外。

+0

寻找一点清洁剂...更多的铁轨... – Nayish 2011-01-23 16:22:23