0
我有一个使用Rabl的和mongoid 3.1.0一个简单的应用程序,这个动作:多个数据库查询
# index
@products = current_shop.products
的Rabl的代码如下所示:
# index.json.rabl
collection @products
extends 'api/products/show'
# show.json.rabl
object @product
attributes :id
当我打它,日志显示4个有关@products请求:
MOPED: 127.0.0.1:27017 QUERY database=bamboo_development collection=products selector={"$query"=>{"shop_id"=>"511c7866fd896b1908000002"}, "$orderby"=>{:_id=>1}} flags=[:slave_ok] limit=-1 skip=0 batch_size=nil fields=nil (0.5682ms)
MOPED: 127.0.0.1:27017 QUERY database=bamboo_development collection=products selector={"$query"=>{"shop_id"=>"511c7866fd896b1908000002"}, "$orderby"=>{:_id=>1}} flags=[:slave_ok] limit=-1 skip=0 batch_size=nil fields=nil (1.1139ms)
MOPED: 127.0.0.1:27017 QUERY database=bamboo_development collection=products selector={"$query"=>{"shop_id"=>"511c7866fd896b1908000002"}, "$orderby"=>{:_id=>1}} flags=[:slave_ok] limit=0 skip=0 batch_size=nil fields=nil (0.4492ms)
MOPED: 127.0.0.1:27017 QUERY database=bamboo_development collection=products selector={"$query"=>{"shop_id"=>"511c7866fd896b1908000002"}, "$orderby"=>{:_id=>1}} flags=[:slave_ok] limit=0 skip=0 batch_size=nil fields=nil (0.4332ms)
当我这样做:
@products = current_shop.products.search(params[:query])
render text: @products.map(&:name).join(",")
我只得到相关@products一个请求:
MOPED: 127.0.0.1:27017 QUERY database=bamboo_development collection=products selector={"shop_id"=>"511c7866fd896b1908000002"} flags=[:slave_ok] limit=0 skip=0 batch_size=nil fields=nil (0.4611ms)
的重复查询看起来很奇怪,没有人知道为什么出现这种情况?它不会调用子对象,只是有点不同的集合查询,从我看到的。
尝试@products = current_shop.products.to_a – Aymeric 2013-02-22 23:52:42