ruby-on-rails – Rails AR对多态关系有效验证_uniqueness_of

验证子模型的属性范围对多态关系的唯一性是否可行?

例如我有一个名为field的模型属于可现场的:

class Field < ActiveRecord::Base
  belongs_to :fieldable,:polymorphic => :true
  validates_uniqueness_of :name,:scope => :fieldable_id
end

我有其他几个模型(页面,项目)有很多字段.所以我想要的是验证字段名称对父模型的唯一性,但问题是偶尔一个页面一个项目共享相同的ID号,导致验证失败,当他们不应该.

我只是这样做错了,还是有更好的方法呢?

解决方法

只需扩大范围以包括现场类型:
class Field < ActiveRecord::Base
  belongs_to :fieldable,:scope => [:fieldable_id,:fieldable_type]
end

相关文章

validates:conclusion,:presence=>true,:inclusion=>{...
一、redis集群搭建redis3.0以前,提供了Sentinel工具来监控各...
分享一下我老师大神的人工智能教程。零基础!通俗易懂!风趣...
上一篇博文 ruby传参之引用类型 里边定义了一个方法名 mo...
一编程与编程语言 什么是编程语言? 能够被计算机所识别的表...
Ruby类和对象Ruby是一种完美的面向对象编程语言。面向对象编...