我刚刚开始使用 DataMapper,我想弄清楚为什么需要指定 has
和 belongs_to
。
例如,查看 DataMapper 网站上的示例。这不是多余的吗?如果发布 has n
评论,那么评论不会自动发布 belongs_to
吗?为什么我必须指定这个?
class Post
include DataMapper::Resource
property :id, Serial
has n, :comments
end
class Comment
include DataMapper::Resource
property :id, Serial
property :rating, Integer
belongs_to :post # defaults to :required => true
def self.popular
all(:rating.gt => 3)
end
end
最佳答案
仅当您想使用由额外规范生成的方法时,才指定关系的双方。它是完全可选的:如果您永远不需要从 Post
获取 Comment
(例如 @comment.post
),则不必在 belongs_to
中指定 Comment
关系。
一个优点是您的实例更简洁一些,因为在 Comment
中附加方法不是自动生成的。另一方面,如果您需要它们,那些额外的方法不会打扰您。
另见 documentation about associations in ActiveRecord 。
关于ruby - DataMapper - 为什么是 "has"和 "belongs_to"?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/7322569/