any_of和之间的mongoid组合

时间:2014-03-13 04:58:52

标签: ruby-on-rails mongoid mongoid4

我需要实现以下目标:

queryable.any_of(
      between(:average_nightly_min_price,  [10,100]),
      between(:average_nightly_max_price,  [110,1100])
  )

是否可以使用any_ofbetween的组合。还是其他任何替代方案?

2 个答案:

答案 0 :(得分:1)

queryable.any_of(
  queryable.between(:average_nightly_min_price,  [10,100]).selector,
  queryable.between(:average_nightly_max_price,  [110,1100]).selector
)

如果嵌入了iqueryable,它就不起作用。

对于2.0之前的ruby版本:

queryable.any_of(
      queryable.between(average_nightly_min_price => [10,100]).selector,
      queryable.between(average_nightly_max_price => [110,1100]).selector
    )

答案 1 :(得分:0)

我还有ArgumentError(如@christofferjoergensen),但mongoid 3.1.5

使用hashrocket语法而不是传递两个参数解决了它:

queryable.any_of(
  queryable.between(:average_nightly_min_price => [10,100]).selector,
  queryable.between(:average_nightly_max_price => [110,1100]).selector
)