我正在尝试为电子邮件解决方案设计架构,以便我可以使用DataMapper访问User对象上的传入和发送消息。 “收件箱”和“已发送”的关联不符合预期。我究竟做错了什么?提前谢谢!
到目前为止,我有以下内容(在阅读了一些内容并从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
答案 0 :(得分:1)
我正在回答我自己的问题 - 希望它有助于某人
以下更改解决了我一直遇到的问题 -
class User
...
has n, :inbox, 'Message', :child_key=>[:target_id]
has n, :sent, 'Message', :child_key=>[:source_id]
end
其他一切,都是一样的......