具有嵌入文档的文档的Mongoid Rails更新错误

时间:2016-04-23 08:12:58

标签: ruby-on-rails mongoid ruby-on-rails-4.2 mongoid5

我有一个名为User的模型。用户embeds_many帖子。

对于有嵌入帖子的用户记录,每当我尝试更新任何其他字段时,我都会收到错误

NoMethodError: undefined method `each' for false:FalseClass

我正在使用如下更新

user = User.find('56da7307421aa90ca4000000')
user.update(likes: 12)

如果我从用户模型文件中删除embeds_many :posts,则上述更新查询可以正常工作。

1 个答案:

答案 0 :(得分:3)

最后我自己想出了这个问题。问题是糟糕的书面关联造成的。它必须如下所示。但我错过了Post模型中的embedded_in关系。

class User
  embeds_many :posts
end

class Post
  embedded_in :user
end

在Post模型中编写embedded_in :user解决了这个问题。