嘿,我有一个模特foo,has_one :bar
。和酒吧belongs_to :foo
。我想知道是否有办法增加has_one,使得没有两个条可以属于同一个foo。我查看了has_one的文档,似乎没有:uniq参数,我可以指定。那么我是否必须创建自定义验证才能实现此目的?或者有更简单的方法吗?
谢谢。
您不需要自定义验证,只需为任何给定的foo强制执行bar的唯一性
class Bar < ActiveRecord::Base
belongs_to :foo
validates_uniqueness_of :foo_id
end
在表格栏中为foo_id添加一个uniq索引,这样你就不能用相同的foo_id创建2个吧,所以只有一个吧可以属于foo
我认为你应该编写自己的验证,因为两个不同的Foo记录不知道其他相关记录(Bar)