3

下面的创建钩子没有成功设置 gdoc 键。我们必须self.write_attribute改用。我是在尝试做一些愚蠢的事情吗?

class GoogleDoc
  field :gdoc_key, type: String
  field :filename, type: String

  after_create :after_create_hook
  def after_create_hook
    self.gdoc_key =  "qwerty"
    self.save
  end
end

谢谢!乔纳森

4

2 回答 2

4

杜兰

您不能在after_挂钩中调用 save ,因为您将导致文档在无限循环中触发回调。您需要使用不会触发回调的东西,例如 update_attribute。

https://github.com/mongoid/mongoid/issues/2974

于 2013-04-16T13:19:12.867 回答
0

你应该gdoc_key设置before_create

before_create :set_gdoc_key
def set_gdoc_key
  self.gdoc_key = 'qwerty'
end
于 2014-12-10T22:31:04.667 回答