Вы также можете добавить сообщение, чтобы переопределить сообщение по умолчанию, или использовать область для добавления проверки:
class Field < ActiveRecord::Base
belongs_to :fieldable, :polymorphic => :true
validates_uniqueness_of :fieldable_id, :scope => [:fieldable_id, :fieldable_type], :message => 'cannot be duplicated'
end
В качестве бонуса, если вы зайдете в свой en.yml и введите:
activerecord:
attributes:
field:
fieldable_id: 'Field'
Вы собираетесь заменить «тему» по умолчанию, которую рельсы добавляют к ошибкам, той, которую вы указали здесь. Поэтому вместо того, чтобы сказать: Fieldable Id has been already taken
или около того, он сказал бы:
Field cannot be duplicated