在mongoid中有一个3路 - A has_many B,A has_many C,B has_manyC

时间:2012-11-26 19:17:22

标签: ruby-on-rails mongoid

情况如下

  • 用户has_many帖子
  • 用户has_many回复
  • 发布has_many回复

问题是我使用

添加新回复
@reply = current_user.posts.find(params[:post_id]).replies.new(params[:reply])

在回复中,它仅保存post_iduser_idnull,如果我使用current_user.replies.new(params[:reply])保存帖子,我会user_id但{ {1}}变为post_id

那么如何添加回复以获得nullpost_id的引用?任何人都有线索!

1 个答案:

答案 0 :(得分:0)

也许你的协会是这样的:

用户模型

has_many :posts
has_many :replies

发布模型

belongs_to :user
has_many :replies

回复模式

belongs_to :post
belongs_to :user

所以,你可以找到一个帖子:

@post = Post.find(params[:post_id])

在帖子中添加新回复:

@reply = @post.replies.build(params[:reply])
@reply.user_id = current_user.id
@reply.save