我有一个用户表 (id,name,...) 和一个 user_details 表(id,user_id,additional_details,designation)
这里的 additional_details 是一个带有 (:empid,:prjt) 的散列
我正在尝试为 additional_details[:empid] 和 designation 列添加验证。怎么做??
最佳答案
在用户详细信息中使用自定义验证:例如,如果我们要检查 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 对象会报错,这反过来又会使用户对象在您尝试保存时报错。
关于ruby-on-rails - 验证 Rails 中的哈希列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4561409/