Uploaded image for project: 'Mongoid'
  1. Mongoid
  2. MONGOID-486

validates_uniqueness_of with multiple :scope

    • Type: Icon: Task Task
    • Resolution: Done
    • 2.3.0
    • Affects Version/s: None
    • Component/s: None
    • Labels:

      ActiveRecord supports giving multiple columns to validates_uniqueness_of's :scope (per http://api.rubyonrails.org/classes/ActiveRecord/Validations/ClassMethods.html#method-i-validates_uniqueness_of):

      validates_uniqueness_of :teacher_id, :scope => [:semester_id, :class_id]

      This appears to be supported as of 2.0.0.beta.20, but does NOT work if any of the elements in the :scope are Times (i.e. :deleted_at):

      ==> TypeError: can't convert Time into Hash
      from /Users/doug/.rvm/gems/ruby-1.9.2-p0/gems/mongoid-2.0.0.beta.20/lib/mongoid/criterion/inclusion.rb:129:in `merge!'
      from /Users/doug/.rvm/gems/ruby-1.9.2-p0/gems/mongoid-2.0.0.beta.20/lib/mongoid/criterion/inclusion.rb:129:in `block in where'
      from /Users/doug/.rvm/gems/ruby-1.9.2-p0/gems/mongoid-2.0.0.beta.20/lib/mongoid/criterion/inclusion.rb:127:in `each_pair'
      from /Users/doug/.rvm/gems/ruby-1.9.2-p0/gems/mongoid-2.0.0.beta.20/lib/mongoid/criterion/inclusion.rb:127:in `where'
      from /Users/doug/.rvm/gems/ruby-1.9.2-p0/gems/mongoid-2.0.0.beta.20/lib/mongoid/validations/uniqueness.rb:36:in `block in validate_each'

            Assignee:
            Unassigned Unassigned
            Reporter:
            doxavore Doug Mayer
            Votes:
            0 Vote for this issue
            Watchers:
            0 Start watching this issue

              Created:
              Updated:
              Resolved: