从id列表构建关系

时间:2010-08-03 20:41:50

标签: ruby-on-rails activerecord has-and-belongs-to-many

嗨我在帖子和评论之间有has_and_belongs_to_many的关系,在我的编辑操作中,我有一个表单,它返回了我{id}}等列表。我想在我当前的模型和所有模型之间建立关系在列表中,1,3,5,8将返回带有@post.comments ID

的评论

实际上我需要执行

1,3,5,8

或做类似的事情

2 个答案:

答案 0 :(得分:1)

params[:list] ||= []                # Create an empty array if form is empty
@posts.comment_ids = params[:list]  # Recreate comment associations

另请参阅Railscast about HABTM Checkboxes

答案 1 :(得分:0)

也许你看起来像这样。

list = params[:list].join(',') # Assumes space separated to begin with
@posts.comments.find(:conditions => ["id IN (?)", list])

<强>更新

除了:我对您应用中的 HABTM 关系感到惊讶。你真的是说帖子可以有很多评论评论可以属于很多帖子吗?当然评论只属于一个帖子,不是吗?

尽管如此,我相信您可以按照以下方式实现您的目标(使用您的示例):

@post.comments.destroy_all

@post.comments.create(...)

这只是ActiveRecord中的基本关联