Skip to content


Arrays / Sets won't update properly #240

florian opened this Issue · 2 comments

2 participants


One of my models has a property that is a Set. (Same problem with arrays.)

property :some_set, Object

When I create an instance, the set is properly saved. But when I try to update the set (add a field to the set, and save the instance) the new set is not saved to the database.

instance = Model.first
instance.some_set #=> <Set: {"a", "b"}>

instance.some_set = instance.some_set.add('c')

instance.some_set #=> <Set: {"a", "b", "c"}>
Model.first.some_set #=> <Set: {"a", "b"}>

How to reproduce:

$ git clone
$ cd dm-sets
$ ruby set.rb
$ ruby array.rb
DataMapper member

With objects mutated inplace dm1 is unable to detect dirtyness. A verbose answer can be found here: dm-types tries to workaround this with a dirty-minder, but this IMHO only does only fix the symptoms not the problem itself.

DataMapper 2.0 does not have this problem, by design.


So I'd include dm-types and use Flag for arrays? There's no type for a Set right?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Something went wrong with that request. Please try again.