У меня есть разные модели, принадлежащие модели компании:
# badge_holder.rb
class BadgeHolder < ApplicationRecord
belongs_to :company
accepts_nested_attributes_for :company, allow_destroy: false, reject_if: :all_blank
end
# user.rb
class User < ApplicationRecord
belongs_to :company
accepts_nested_attributes_for :company, allow_destroy: false, reject_if: :all_blank
end
Компания в контексте держателя бейджа нуждается в дополнительной информации (такой как адресные данные), как в контексте пользователя.
Чтобы быть уверенным, что компания без контекста обладает всеми необходимыми атрибутами, я бы установил валидаторы в модели компании:
# company.rb
class Company < ApplicationRecord
validates_presence_of :name, :address, :zip, :city
end
Использование держателя значка и пользовательской формы вместе с компанией в качестве вложенных атрибутов в форме:
Есть ли способ частично отозвать валидатор в контексте формы пользователя (адрес, почтовый индекс и город не обязательны)?