У меня есть приложение Rails 5 с таблицей отношений. Столбцы таблицы выглядят так:
вспениваемый (полиморфный)
toable (полиморфный)
Я хочу, чтобы пользователи не могли сохранять отношения, которые являются дубликатами (то есть имеют одинаковую возможность преобразования и переноса). Я пытался сделать следующее:
class Relation < ApplicationRecord
...
belongs_to :fromable, polymorphic: true
belongs_to :toable, polymorphic: true
validate :is_not_duplicate_relation
private
def is_not_duplicate_relation
errors.add(:base, "DUPLICATE") if Relation.where(toable: self.toable).where(fromable: self.fromable)
end
end
Но это, кажется, вызывает недействительным на всех?