Ceci concerne la bibliothèque ORM ruby DataMapper.Comment obtenir l'adaptateur in_memory de la bibliothèque ruby DataMapper pour enregistrer correctement l'identifiant du modèle?
This wiki décrit comment utiliser l'adaptateur in_memory pour DataMapper. Les adaptateurs de base de données correct permet de réaliser un incrémenter, identifiant unique sur chaque instance de modèle - in_memory ne semble pas faire comme le montre l'extrait suivant:
require 'rubygems'
require 'dm-core'
DataMapper.setup(:in_memory, :adapter => 'in_memory')
class Foo
include DataMapper::Resource
def self.default_repository_name;:in_memory;end
def self.auto_migrate_down!(rep);end
def self.auto_migrate_up!(rep);end
def self.auto_upgrade!(rep);end
property :id, Serial
property :name, Text
end
f = Foo.new
f.name = "foo"
f.save
puts f.inspect
Les résultats de l'inspection est la suivante:
#<Foo id=nil name="foo">
Si j'avais utilisé un autre adaptateur pour me connecter, par exemple, une base de données sqlite id aurait été définie sur '1'.
Je voudrais me référer à mes modèles via id, car je ne peux pas garantir l'unicité sur d'autres attributs. Existe-t-il un moyen de faire en sorte que l'adaptateur in_memory enregistre un attribut d'identifiant unique incrémentiel pour ses modèles?