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

前端之家收集整理的这篇文章主要介绍了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

猜你在找的Ruby相关文章