【发布时间】:2021-12-08 22:14:00
【问题描述】:
我想根据关联列验证模型列
app/models/filter.rb
belongs_to :filter_set
validates_uniqueness_of :name, scope: %i[filter_set.organization_id]
app/models/filter_set.rb
has_many :filters
我想针对关联的 organization_id 添加过滤器类型的验证。我找不到任何可以验证关联键的方法
【问题讨论】:
-
validates_uniqueness_of 只能用于根据 this 模型表设置条件。你想要做的事情需要加入。这个问题真正应该告诉您的是您没有正确建模数据 - 您很可能缺少过滤器和 filter_sets 之间的连接表,它可以让您将过滤器用作规范化表。您需要记住,应用程序级别的验证很容易出现竞争条件,并且需要使用数据库约束来强制执行,这对于您在这里拥有的任何东西来说都是非常困难的。
标签: ruby-on-rails ruby validation ruby-on-rails-5