Ruby on rails Rails 3.2中的多个

Ruby on rails Rails 3.2中的多个,ruby-on-rails,ruby,ruby-on-rails-3,Ruby On Rails,Ruby,Ruby On Rails 3,当涉及到将注释与用户和页面关联时,Rails中的属于关联,这让我相当困惑。我想说的是,有没有一种方法可以将评论与用户和页面关联起来?以下面的例子为例(简单的例子对我来说并不适用,但可以演示): 听起来你要找的是一个。查看官方Rails多态关联指南的链接,但简而言之,您可以这样做: class Comments belongs_to :commentable, :polymorphic => true end class User has_many :comments, :as =

当涉及到将注释与用户和页面关联时,Rails中的
属于
关联,这让我相当困惑。我想说的是,有没有一种方法可以将评论与用户和页面关联起来?以下面的例子为例(简单的例子对我来说并不适用,但可以演示):


听起来你要找的是一个。查看官方Rails多态关联指南的链接,但简而言之,您可以这样做:

class Comments
  belongs_to :commentable, :polymorphic => true
end

class User
  has_many :comments, :as => :commentable
end

class Page
  has_many :comments, :as => :commentable
end
现在在注释表中添加两个字段commentable_type(字符串)和commentable_id(整数)

现在你的用户和页面都可以有评论了


如果comment是一个comment对象,您可以使用comment.commentable获取该评论的用户/页面

什么不起作用?拥有多个“属于”是100%正确的,没有什么特别的。@AnthonyAlberto对我来说,它根本没有创建双重关联。我不知道mongodb是如何工作的,但在拥有“属于”的表中应该有外键。所以在这里的
comments
表中,您需要
user\u id
page\u id
您想要
user->page->Comment
关联还是
user->Comment
表示
有很多
。在前一种情况下,用户
有许多:注释,:至=>:页面
。在你的代码中有一个循环(
User->Page->Comments
User->Comments
,同时都是直接的)。我仍然不清楚什么不起作用。你能不能试着更详细地描述一下(例子?)哪些地方不符合预期。我想要与用户和页面相关联的评论(我猜是双重关联)这样,我就可以通过用户记录获取用户对页面和帖子的评论,而无需直接点击评论或页面,但当他们发布评论时,也可以使用Page.comments.create!如果您有一个用户对象->用户,那么您可以使用User.comments来获取与该用户关联的所有注释,但我不确定您真正想要的是什么
class Comments
  belongs_to :commentable, :polymorphic => true
end

class User
  has_many :comments, :as => :commentable
end

class Page
  has_many :comments, :as => :commentable
end