Направляющие AR validates_uniqueness_of против полиморфных отношений

Действительно ли возможно проверить уникальность атрибута дочерней модели, ограниченного по объему против полиморфных отношений?

Например, мне назвали модель field это принадлежит fieldable:

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

У меня есть несколько других моделей (Страницы, Объекты), которые имеют много Полей. Таким образом, то, что я хочу, должно проверить уникальность имени поля против родительской модели, но проблема состоит в том, что иногда Страница и Объект совместно используют тот же Идентификационный номер, заставляя проверки перестать работать, когда они не были должны.

Я просто делаю эту несправедливость или являюсь там лучшим способом сделать это?

10
задан aaronrussell 31 March 2010 в 21:27
поделиться

1 ответ

Просто расширите область действия, включив в нее тип с возможностью полей:

class Field < ActiveRecord::Base
  belongs_to :fieldable, :polymorphic => :true
  validates_uniqueness_of :name, :scope => [:fieldable_id, :fieldable_type]
end
21
ответ дан 3 December 2019 в 18:32
поделиться
Другие вопросы по тегам:

Похожие вопросы: