我有一个Users表(id,name,...) 和user_details表(id,user_id,additional_details,指定)
这个additional_details是一个带有(:empid,:prjt)
的哈希我正在尝试为additional_details [:empid]和指定列添加验证。怎么做??
答案 0 :(得分:7)
在用户详细信息中进行自定义验证:例如,如果我们要检查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对象检查其关联的user_detail对象是否有效。
#in User
validates_associated :user_detail
现在,如果没有设置empid,UserDetail对象会抱怨,这反过来会让用户对象在你尝试保存时抱怨。