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