#ruby-on-rails #ruby-on-rails-3 #validation #activerecord
#ruby-on-rails #ruby-on-rails-3 #проверка #activerecord
Вопрос:
Похоже, что в rails 3 (версия 3.0.7) validates_associated включен по умолчанию (и в результате он устарел).
Мой модельный платеж имеет соответствующее напоминание о модели:
class Payment < ActiveRecord::Base
belongs_to :reminder
end
всякий раз, когда я создаю новый платеж, он также проверяет связанное напоминание. Я хочу пропустить это. Добавление:validate => false к отношению не сработало. Есть предложения? А также, если бы кто-нибудь мог рассказать об изменениях в rails 3 с помощью validates_associated, поскольку я не смог его найти.
Ответ №1:
Я не вижу причин, по которым проверка ассоциации будет выполняться, если она явно не определена. Есть ли в вашем напоминании что-нибудь, что могло бы выполнять проверку?
http://apidock.com/rails/v3.0.7/ActiveRecord/Associations/ClassMethods/belongs_to
http://apidock.com/rails/v3.0.7/ActiveRecord/Validations/ClassMethods/validates_associated
Комментарии:
1. Модель напоминания имеет пользовательскую проверку, которая проверяет, что due_date не в прошлом, и при создании нового платежа происходит сбой. Я хочу изменить это поведение.
Ответ №2:
Это не проблема с проверкой, но я обновлял свою модель напоминания после создания записи платежа. Это привело к запуску проверок для модели напоминания.
Добавлено условие для этого особого случая (когда я хотел пропустить проверку), чтобы не обновлять модель напоминания.
Хотя ответ специфичен для моего сценария, но добавление, поскольку это может кому-то помочь.