【问题标题】:Rails: Getting list of attributes with uniqueness validations from a modelRails:从模型中获取具有唯一性验证的属性列表
【发布时间】:2011-10-29 13:51:22
【问题描述】:

只是想知道是否可以返回具有唯一性验证的所有属性的列表?例如,我有一个模型 Person - 我想返回“Person”中具有唯一性约束的属性列表。有什么想法吗?

【问题讨论】:

    标签: ruby-on-rails validation activemodel


    【解决方案1】:

    你可以这样做

    Person.validators.select { |v| v.is_a?(ActiveRecord::Validations::UniquenessValidator) }

    获取 Person 模型的唯一性验证器列表。每个验证器都有一个 @attributes 实例变量,这可能是您需要的。

    【讨论】:

      【解决方案2】:

      @eugen's answer 为基础,这里是列出所有具有唯一性验证器的属性的代码:

      self.class.validators.collect do |validator|
        validator.attributes if validator.is_a?(ActiveRecord::Validations::UniquenessValidator)
      end.flatten.compact.uniq
      

      它返回一个符号数组,在末尾加上.map(&:to_s)得到一个字符串数组。

      【讨论】:

        猜你喜欢
        • 2014-09-20
        • 1970-01-01
        • 1970-01-01
        • 2014-04-19
        • 1970-01-01
        • 2011-03-17
        • 1970-01-01
        • 2023-03-07
        相关资源
        最近更新 更多