【问题标题】:Mongomapper uniquenessMongomap 唯一性
【发布时间】:2014-09-15 09:19:31
【问题描述】:

我有用户模型

class User
  include MongoMapper::Document


  key :phone, Integer, :required => true, :unique => true
  key :is_confirmed, Boolean, :default => false
  timestamps!
end

并验证手机的唯一性,但我可以使用同一手机创建用户而不会出错。为什么?

为什么验证唯一性不起作用

【问题讨论】:

    标签: ruby-on-rails validation mongomapper


    【解决方案1】:

    MongoMapper 使用ActiveModel:Validations,因此它的工作方式几乎与ActiveRecord 完全相同

    试试这个来验证:validates_uniqueness_of

    validates_uniqueness_of :phone
    

    在尝试保存记录时运行验证。如果验证fail,保存将返回false

    大多数简单验证可以与一起声明。

    例子:

    class Person
      include MongoMapper::Document
    
      key :first_name,  String,   :required => true
      key :last_name,   String,   :required => true
      key :age,         Integer,  :numeric => true
      key :born_at,     Time
      key :active,      Boolean
      key :fav_colors,  Array
    end
    

    定义keys 时的可用选项有:

    • :required – 声明 validate_presence_of 的布尔值
    • :unique – 声明 validates_uniqueness_of 的布尔值
    • :numeric – 声明 validates_numericality_of 的布尔值
    • :format – 传递给 validates_format_of 的正则表达式
    • :in – 传递给 validates_inclusion_of 的数组
    • :not_in – 传递给 validates_exclusion_of 的数组
    • :length – 传递给 validates_length_of 的整数、范围或哈希

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2018-09-24
      • 1970-01-01
      • 2011-04-29
      • 2011-07-31
      • 2017-08-18
      • 2016-07-25
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多