首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何将any_of和Mongoid 4之间的结合起来?

如何将any_of和Mongoid 4之间的结合起来?
EN

Stack Overflow用户
提问于 2014-06-19 08:22:52
回答 1查看 104关注 0票数 1

我在这是如此的帖子中读过这篇文章,你可以像这样把any_ofbetween结合起来:

代码语言:javascript
复制
webshop = Webshop.first

webshop.orders.any_of(
  webshop.orders.between(:datetime_pending, [Time.zone.now-7.days, Time.zone.now]).selector, # An error is raised here.
  webshop.orders.between(:datetime,         [Time.zone.now-7.days, Time.zone.now]).selector
)

但是,当使用Mongoid4尝试这个查询时,我得到的是错误:

代码语言:javascript
复制
ArgumentError: wrong number of arguments (2 for 0..1).
/Users/christoffer/project/vendor/gems/ruby/2.0.0/gems/origin-1.1.0/lib/origin/selectable.rb:63:in `between'
/Users/christoffer/project/vendor/gems/ruby/2.0.0/bundler/gems/mongoid-b91705b0ded8/lib/mongoid/relations/referenced/many.rb:413:in `block in method_missing'
/Users/christoffer/project/vendor/gems/ruby/2.0.0/bundler/gems/mongoid-b91705b0ded8/lib/mongoid/scopable.rb:238:in `with_scope'
/Users/christoffer/project/vendor/gems/ruby/2.0.0/bundler/gems/mongoid-b91705b0ded8/lib/mongoid/relations/referenced/many.rb:412:in `method_missing'

我在这里错过了什么?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-06-19 09:33:07

根据文档,Queryable#between接受一个散列(一个包含范围值的键)。

你试过传递那个而不是数组吗?

代码语言:javascript
复制
webshop = Webshop.first
now = Time.zone.now
seven_days = now - 7.days
webshop_orders = webshop.orders

webshop_orders.any_of(
  webshop_orders.between(datetime_pending: seven_days..now).selector,
  webshop_orders.between(datetime:         seven_days..now).selector
)
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/24301925

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档