MongoDB
 sql >> Teknologi Basis Data >  >> NoSQL >> MongoDB

Bagaimana cara memvalidasi anggota bidang array?

Anda dapat menentukan ArrayValidator khusus . Tempatkan berikut di app/validators/array_validator.rb :

class ArrayValidator < ActiveModel::EachValidator
  def validate_each(record, attribute, values)
    Array(values).each do |value|
      options.each do |key, args|
        validator_options = { attributes: attribute }
        validator_options.merge!(args) if args.is_a?(Hash)

        next if value.nil? && validator_options[:allow_nil]
        next if value.blank? && validator_options[:allow_blank]

        validator_class_name = "#{key.to_s.camelize}Validator"
        validator_class = begin
          validator_class_name.constantize
        rescue NameError
          "ActiveModel::Validations::#{validator_class_name}".constantize
        end

        validator = validator_class.new(validator_options)
        validator.validate_each(record, attribute, value)
      end
    end
  end
end

Anda dapat menggunakannya seperti ini di model Anda:

class User
  include Mongoid::Document
  field :tags, Array

  validates :tags, array: { presence: true, inclusion: { in: %w{ ruby rails } }
end

Ini akan memvalidasi setiap elemen dari larik terhadap setiap validator yang ditentukan dalam array hash.



  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. mongodb, replika dan error:{ $err :not master and slaveOk=false, code :13435 }

  2. pemetaan dalam indeks buat di pencarian elastis melalui sungai mongodb tidak berlaku

  3. Arsitek untuk Keamanan :Panduan untuk MongoDB

  4. Cara Mengonversi Tampilan MongoDB menjadi Koleksi

  5. MongoDB $atan2