С пользовательской проверки в деталях пользователя: например, если мы хотим, чтобы проверить, что EmpId не является пустым:
#in UserDetail
validate :additional_details_is_valid
def additional_details_is_valid
if !self.additional_details.is_a?(Hash) || self.additional_details[:empid].blank?
self.errors.add(:additional_details, "Empid is blank")
end
end
Теперь мы просто должны сделать проверку пользователя объекта, который связанный с ним объект user_detail является действительным.
#in User
validates_associated :user_detail
Теперь, если EmpID не установлен объект UserDetail будет жаловаться, и это, в свою очередь, сделает объект пользователя жалуются, когда вы пытаетесь сохранить его.