【问题标题】:validation for hash column in rails验证rails中的哈希列
【发布时间】: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


    【解决方案1】:

    在用户详细信息中使用自定义验证:例如,如果我们要检查 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 对象会报错,而当你尝试保存它时,这又会导致用户对象报错。

    【讨论】:

      猜你喜欢
      • 2012-08-21
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-12-30
      • 2012-11-04
      • 1970-01-01
      相关资源
      最近更新 更多