Origin和Mongoid之间的文档对于如何使用Origin::Queryable对象并不是很清楚。我可以构建一个Origin::Queryable对象,然后将其传递给ModelName.where方法吗?看起来我做不到,但另一方面,似乎是一件完全明智的事情。我可以想象这样一种情况:我基于某种逻辑构建了一个Queryable,然后将其传递给Model的where子句。这是可能的,而我只是做得不对吗?
这就是我所描绘的:
class Criteria
include Origin::Queryable
end
criteria = Criteria.new
criteria.where(category: 'vacuum').ne(dept: 'home')
vacuums = Product.where(criteria)我就是这么想的,但事实并非如此。在我构建了Criteria对象之后,我该怎么做呢?
发布于 2012-12-26 02:52:42
所以它是这样工作的:
c = Criteria.new
c = c.where(category: 'a').ne(dept: 'home')然后你有了你的criteria c,现在你只需要使用它,如果你使用的是10gen驱动程序,你可以像这样使用:
collection.find(c.selector, c.options)或者使用轻便摩托车:
session[:collection].find(c.selector).select(c.options.fields)这应该会起作用,只是做了一些本地测试,对我来说很好。
https://stackoverflow.com/questions/14012761
复制相似问题