【发布时间】:2010-12-30 09:21:57
【问题描述】:
我有一个用户表 (id,name,...) 和一个 user_details 表(id,user_id,additional_details,designation)
这里的 Additional_details 是一个带有 (:empid,:prjt) 的哈希
我正在尝试为 additional_details[:empid] 和指定列添加验证。怎么办??
【问题讨论】:
标签: ruby-on-rails
我有一个用户表 (id,name,...) 和一个 user_details 表(id,user_id,additional_details,designation)
这里的 Additional_details 是一个带有 (:empid,:prjt) 的哈希
我正在尝试为 additional_details[:empid] 和指定列添加验证。怎么办??
【问题讨论】:
标签: ruby-on-rails
在用户详细信息中使用自定义验证:例如,如果我们要检查 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 对象会报错,而当你尝试保存它时,这又会导致用户对象报错。
【讨论】: