이것은 루비 ORM 라이브러리 DataMapper에 관한 것입니다.모델의 ID를 올바르게 저장하기 위해 루비 라이브러리 DataMapper의 in_memory 어댑터를 만들려면 어떻게해야합니까?
This wiki은 DataMapper에 in_memory 어댑터를 사용하는 방법을 설명합니다. 적절한 데이터베이스 어댑터는 각 모델 인스턴스에 증분, 고유 ID를 저장 - 다음 코드와 같이 in_memory 그렇게하지 않는 것 다음 검사의
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
결과입니다 :
#<Foo id=nil name="foo">
예를 들어, 다른 어댑터를 사용하여 sqlite 데이터베이스 에 연결하면 '1'로 설정됩니다.
id를 통해 내 모델을 참조하고 싶습니다. 다른 속성 세트의 고유성을 보장 할 수 없기 때문입니다. in_memory 어댑터가 모델에 대해 증가하고 고유 한 id 속성을 저장하는 방법이 있습니까?