关于如何解决此问题的文档很少。我有一个评论模型,其中包含一个字段,用于存储创建评论的用户以及评论所针对的用户。
我认为有两种方法可以做到这一点:
class Comment
include Mongoid::Document
field :from, type: Moped::BSON::ObjectId # The user who created the comment
field :to, type: Moped::BSON::ObjectId # The user the comment is directed at
field :details, type: String
-OR -
class Comment
field Mongoid::Document
belongs_to :user # The user who created the comment
field :to, type: Moped::BSON::ObjectId # The user the comment is directed at
field :details, type: String
以某种方式做到这一点是否有任何好处?或者这两个是一样的吗?或者,还有更好的方法?使用Mongoid和Sinatra。
答案 0 :(得分:0)
你工作的第一种方式很好,但如果你这样做并想要用户信息,你需要添加帮助方法来使用id来拉动用户。
第二种方式是那里,但我会这样做:
belongs_to :from_user, class_name: 'User'
belongs_to :to_user, class_name: 'User'
通过这种方式,您可以comment.from_user
和comment.to_user
获取实际用户。 id仍然没有明确地被调出,而是从属于。
所有这一切,因为这是mongo和文档数据库,如果您需要评论所需的用户的特定信息,我可能倾向于在评论中嵌入您需要的信息,这样您就不会# 39;不得不做一个关系。