2012-01-22 3 views
0

Я пытаюсь разработать схему для решения электронной почты, чтобы получить доступ к входящим и отправленным сообщениям в объекте User с помощью DataMapper. Ассоциации «Входящие» и «отправленные» не выполняют то, что предназначено. Что я делаю не так? Заранее спасибо!Ассоциация DataMapper

Я следующий до сих пор (после прочтения немного и скопировать пример друзей с сайта DM) -

class User 
    include DataMapper::Resource 
    property :id, Serial 
    property :name, String, :required=>true 
    property :email, String, :required=>true, :unique=>true 
    property :password, String, :required=>true 

    has n, :messages, :child_key=>[:source_id, :target_id] 
    has n, :inbox, 'Message', :through=>:messages, :via=>:target 
    has n, :sent, 'Message', :through=>:messages, :via=>:source 
end 

class Message 
    include DataMapper::Resource 
    property :id, Serial 
    property :subject, String, :required=>true 
    property :body, String 

    belongs_to :source, 'User', :key=>true 
    belongs_to :target, 'User', :key=>true 
end 

ответ

1

Я отвечаю на свой вопрос - надеюсь, это поможет кому-то

следующие изменения исправляет эту проблему у меня были -

class User 
    ... 

    has n, :inbox, 'Message', :child_key=>[:target_id] 
    has n, :sent, 'Message', :child_key=>[:source_id] 
end 

Все остальное остается тем же самым ...