2010-12-30 3 views
2

я имею таблицу Users (идентификатор, имя, ...) и таблица user_details (идентификатор, user_id, additional_details, обозначение)проверки для хэш-столбца в рельсах

где это additional_details является хеш (: empid,: prjt)

Я пытаюсь добавить проверки для дополнительных_документов [: empid] и столбца обозначения. Как это сделать ??

ответ

6

С пользовательской проверки в деталях пользователя: например, если мы хотим, чтобы проверить, что 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 будет жаловаться, и это, в свою очередь, сделает объект пользователя жалуются, когда вы пытаетесь сохранить его.