ruby on rails has_one与unique关联

时间:2011-06-07 16:48:08

标签: ruby-on-rails model belongs-to has-one

嘿,我有一个模型foo has_one :bar。并belongs_to :foo栏。我想知道是否有办法增加has_one,使得没有两个条可以属于同一个foo。我查看了has_one的文档,似乎没有:uniq参数,我可以指定。那么我是否必须创建自定义验证才能实现此目的?或者有更简单的方法吗?

感谢。

3 个答案:

答案 0 :(得分:15)

您不需要自定义验证,只需为任何给定的foo强制执行bar的唯一性

class Bar < ActiveRecord::Base
  belongs_to :foo
  validates_uniqueness_of :foo_id
end

答案 1 :(得分:1)

在表格栏中为foo_id添加一个uniq索引,这样你就不能创建2个具有相同foo_id的栏,所以只有一个栏可以属于foo

答案 2 :(得分:0)

我认为你应该编写自己的验证,因为两个不同的Food记录对其他相关记录一无所知(Bar)