2012-04-13 2 views
0

Я использую DataMapper с адаптером redis в библиотеке Ruby.DataMapper Redis: не удается найти дочерний элемент из родителя, только родительский элемент от дочернего

У меня есть эти классы определены:

class Zone 

    include DataMapper::Resource 

    property :id, String, :key => true, :unique_index => true, :default => lambda { |x,y| UUID.new.generate } 
    property :preview_mode, Boolean, :default => false 

    timestamps :at 

    has 1, :campaign 
end 

и

class Campaign 

    include DataMapper::Resource 

    property :id, String, :key => true, :unique_index => true, :default => lambda { |x,y| UUID.new.generate } 
    property :name, String 

    timestamps :at 

    belongs_to :zone 
    has n, :rules 

    validates_presence_of :name 
end 

Я могу сделать Campaign.first.zone но не Zone.first.campaign.

Я хотел был бы быть в состоянии сделать поиск в обоих направлениях.

+0

Ваш код, кажется, работает здесь. Какая ошибка вы получаете? –

+0

@AdielMittmann - Нет ошибки, однако код не ведет себя так, как я ожидаю. Я хотел бы иметь возможность искать ребенка от родителя, а также от родителя от ребенка. В настоящее время с этой конфигурацией работают только запросы от дочернего к родительскому. – lightyrs

+0

Но что происходит, когда вы делаете что-то вроде 'puts Zone.first.campaign.name'? После создания зоны и кампании, в моей настройке этот фрагмент кода выполняет поиск как ожидалось :) –

ответ

1

@lightyrs Я ответил на вашу проблему github, но для справки здесь, я думаю, эта проблема исправлена ​​в версиях> 0.8, которые имеют лучшую поддержку для несерийных первичных ключей.

Cheers! - whoahbot