Should reordering a HABTM association have the expected effect? I ask
because reordering the association seems to reorder the parent's child
ID collection, but not the child instance collection.
require 'mongoid'
Mongoid.configure do |config|
config.master = Mongo::Connection.new.db("test")
end
class Car
include Mongoid::Document
has_and_belongs_to_many :drivers
end
class Driver
include Mongoid::Document
has_and_belongs_to_many :cars
end
driver1 = Driver.create
driver2 = Driver.create
car = Car.create
car.drivers = [driver1, driver2]
car.save
# Try reordering the existing association
car.drivers.delete(driver1)
car.drivers << driver1
car.save
car.reload
expected_order = [
driver2.id,
driver1.id]
if car.driver_ids != expected_order
raise "Driver IDs were not reordered"
end
if car.drivers.collect(&:id) != expected_order
raise "Drivers were not reordered"
end