Ruby 在 Rails 上:has_many 集合未更新

Ruby On Rails : has_many collection not updated

更新 has_many 关联中的对象时遇到问题:

l = self.posts.where(...)
l.each do |item|
  item.increment!(:nb, 2)         
  item.update
  item.save
end

当我这样做时:

logger.info Post.all.inspect
logger.info self.posts.inspect

第一行更新帖子,第二行不更新

有没有办法强制更新或者我做错了什么?我也试过禁用缓存,但它仍然是同样的问题。

你可以做到

logger.info self.posts(true).inspect

默认情况下,force_reloadfalse