MongoDB
 sql >> डेटाबेस >  >> NoSQL >> MongoDB

मैं किसी सरणी फ़ील्ड के सदस्यों को कैसे मान्य करूं?

आप कस्टम ArrayValidator . को परिभाषित कर सकते हैं . निम्नलिखित को 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

आप इसे अपने मॉडल में इस तरह इस्तेमाल कर सकते हैं:

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

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

यह प्रत्येक को मान्य करेगा प्रत्येक . के सामने सरणी से तत्व array . के भीतर निर्दिष्ट सत्यापनकर्ता हैश।



  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. मैंगोज़ का उपयोग करके स्ट्रिंग के हिस्से वाले सभी मान कैसे प्राप्त करें?

  2. मोंगो डीबी किसी भी मूल्य के साथ क्षेत्र के नाम से खोजें

  3. Heroku mongohq और mongoid Mongo::ConnectionFailure

  4. मोंगोडीबी $stdDevPop

  5. MongoDB रेगेक्स, सूचकांक और प्रदर्शन