я в настоящее время есть две моделиPass проверки по форме полей перед товарищеским Создание ID - Пользовательские
Место и продукта
Я его сконфигурировано, что, когда создается запись в моей модели производства, его создает пользовательский URL на основе информации, которую она собирается с места, выбранным в процессе создания продукта
extend FriendlyId
friendly_id :slug_candidates, use: :slugged
def should_generate_new_friendly_id?
name_changed? or location_id_changed?
end
def slug_candidates
[
[location.media_type, location.state, location.name, :name, :sku]
]
end
то, что я в настоящее время тестирования является ш Курица пользователь решает НЕ заполнять эти очень важные поля, для того, чтобы бросить сообщение об ошибке перед созданием
validates :name, presence: true
validates :sku, presence: true
validates :location_id, presence: true
Что происходит в моем случае, это то, что он упускает из вида, что валидатор и первой пытается создать слизняк. Если я удалю пользовательские атрибуты при создании URL-адреса и список как
def slug_candidates
[
[:name, :sku]
]
end
он будет работать нормально, сначала запустить валидаторы поля. Предполагая, что эти два являются атрибутами данной модели напрямую.
Кто-нибудь знает, почему это происходит? Мне нужно, чтобы валидаторы были выбраны первым, поскольку в нем содержится вся соответствующая информация для URL-адреса.