ruby on rails has_one与unique关联

问题描述 投票:7回答:3

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

谢谢。

ruby-on-rails model belongs-to has-one
3个回答
15
投票

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

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

1
投票

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


0
投票

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

© www.soinside.com 2019 - 2024. All rights reserved.