我有一个rails项目,我最近决定在评论表中添加blog_id
,以便您提取属于特定博客的所有评论。我面临的问题是我如何处理数据库中已有的评论?我可以这样做:
Comment.find_each(&:save)
我认为不是因为它不知道它最初属于哪个博客 - 即使关系已经更新说:博客有很多评论和评论属于博客
根据这种关系,我可以在rake任务中执行上述代码吗?
答案 0 :(得分:1)
Comment.all.each do |comment|
comment.blog = comment.post.blog
comment.save
end
但这一切并非真的有必要。您可以在没有blog_id
的情况下将评论分配给博客,只需通过以下内容:
blog.rb
has_many :posts
has_many :comments, through: :posts
post.rb
belongs_to :blog
has_many :comments
comment.rb
belongs_to :post
def blog
post.blog
end
这样,您将(每个案例):
@blog.posts
@blog.comments
@post.comments
@post.blog
@comment.post
@comment.blog