У меня есть две модели: Source и SourceType. Источник, конечно же, принадлежит SourceType.
Я хочу создать новый источник и назначить ему правильный объект типа источника. "Правильно" означает, что один виртуальный атрибут исходного объекта соответствует некоторому тестовому регулярному выражению объектов sourceType, которое становится типом источника.
У меня есть писатель атрибутов в исходном объекте
class Source < ActiveRecord::Base
belongs_to :source_type
def url=(value)
SourceType.each do |type|
# here i match type's regexp to input value and if match,
# assign it to the new source object
end
end
end
Я не хочу создавать какой-либо собственный валидатор, потому что ему нужно будет дважды запускать SourceTypes. Как вызвать ошибку проверки, если исходные типы не подходят для ввода, чтобы пользователь мог видеть причины ошибки в форме?