在Rails 3中,可以执行some_post.comments.append(some_comment)
之类的操作,其中一些帖子是“has_many”注释的模型实例。
我在Rails 4中遇到的问题是append
方法现在保存到数据库(如push
和<<
),我需要“追加”而不保存附加到DB的对象。
我们如何在Rails 4中实现这一目标?我无法使用some_post.comments.build(some_comment.attributes)
,因为我需要保留some_comment
实例中已存在的其他关系。
答案 0 :(得分:40)
在Rails中优雅地执行此操作非常困难。这是我发现的最干净的方式:
post.association(:comments).add_to_target(comment)
答案 1 :(得分:-1)
你可以这样做:
class Post < ActiveRecord::Base
has_many: comments, autosave: false
...
end
然后&lt;&lt;只会附加而不是保存。