У меня есть следующие 2 объекта с отношением один-ко-многим:
class DonationTarget < ApplicationRecord
has_many :purposes, inverse_of: :donation_target, autosave: true, dependent: :destroy
accepts_nested_attributes_for :purposes, allow_destroy: true
validates_associated :purposes
validates :purposes, presence: true, length: { maximum: 3 }
...
end
class Purpose < ApplicationRecord
belongs_to :donation_target, inverse_of: :purposes
with_options if: -> { ...(some method call on the donation_target)... } do |sth|
sth.validates : ....
end
end
И активная форма редактирования администратора для цели пожертвования, включая цели - мы можем редактировать, удалять и создавать цели для цели пожертвования
ActiveAdmin.register DonationTarget do
...
form do |f|
...
f.inputs 'Purposes' do
f.has_many :purposes, heading: false, do |ff|
...
end
end
...
end
...
end
И когда я пытаюсь загрузить форму редактирования, запускается проверка валидации (with_options ...) в классе Purpose. Это приводит к исключению и так далее, но мой вопрос: ПОЧЕМУ валидация вообще запускается при загрузке формы? Разве он не должен запускаться только при сохранении формы?