【发布时间】:2013-04-24 01:34:45
【问题描述】:
我很难相信我所看到的,但看起来 DJ 确实无法正确反序列化对象。我查看了 mongo 中的 DJ 记录,并在 YAML 中看到该对象设置了其text 字段,但是当代码运行时,text 字段未设置。这是一些最小的复制代码:
class Board
include Mongoid::Document
field :text, type: String
def process_text_field
if not self.text
raise "Text field is blank"
end
# Text field gets processed
end
end
# in a controller
def start_doing_something_slow
board = Board.find(params[:id])
board.text = "Text field is set"
board.save!
raise "Text disappeared!" unless board.text
board.delay.process_text_field
render json: {:result=>'ok'}
end
我用浏览器调用控制器方法,直接在mongo中查看DJ记录。我在 YAML 中看到 Board 对象正确设置了 text 字段。但是当它在 DJ 中执行时,它会引发 Text field is blank 异常。
不知何故,它没有正确反序列化对象。
【问题讨论】:
标签: ruby-on-rails mongoid delayed-job