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