0
查询语法问题,我有一个Ruby协会类,如下所示:Mongoid 3.1的Ruby 1.9.3
class Association
include Mongoid::Document
field :issued, type: Integer
field :lifetime, type: Integer
end
而且我要删除所有文档的我的集合,其中doc.issued + doc.lifetime > Time.now
英寸我在网上找到了下面的语法:
Association.delete_all(["issued + lifetime > ?", Time.now.to_i])
我不能得到这个工作,我得到以下错误:
TypeError: can't convert Symbol into Integer
from /var/lib/gems/1.9.1/gems/mongoid-3.1.0/lib/mongoid/persistence.rb:298:in `[]'
from /var/lib/gems/1.9.1/gems/mongoid-3.1.0/lib/mongoid/persistence.rb:298:in `delete_all'
from (irb):77
from /usr/bin/irb:12:in `<main>'
有人能告诉我有什么不对的语法或建议不同的语法,将工作?
这应该工作。在我真正的实现中,发布的是DateTime。我可以在这个答案中调用this.issued.to_i,还是需要将它移动到像ti这样的外部变量? – 2013-02-22 19:07:22
“(this.issued + this.lifetime)> ti”是Javascript指令,而不是Ruby指令。所以你只能使用Javascript函数,因此this.issued.to_i将不起作用。因为你想保留这个变量,所以你不能在外面移动。 – Aymeric 2013-02-22 23:25:26