Rails 4:附加到"has_many"关系而不保存到DB

dro*_*jas 30 ruby activerecord ruby-on-rails-4

在Rails 3中,可以做一些事情,例如some_post.comments.append(some_comment)某些帖子是"has_many"评论的模型实例.

我在Rails 4中面临的问题是该append方法现在保存到DB(像push<<),我只需"追加"而不将附加对象保存到DB.

我们如何在Rails 4中实现这一目标?我无法使用,some_post.comments.build(some_comment.attributes)因为我需要保留some_comment实例中已存在的其他关系.

waf*_*eau 43

在Rails中优雅地完成这项工作非常困难.这是我发现的最干净的方式:

post.association(:comments).add_to_target(comment)
Run Code Online (Sandbox Code Playgroud)

  • 第二种方式:post.comments.proxy_association.add_to_target(comment) (2认同)