2013-04-05 54 views

回答

1

一个新的问题,您应该ActiveRecord的过滤数据,然后调用筛选数据中的as_json。

你可以这样做:你能做到这一点

@shops = Shop.includes(:items).where("items.itemp_type = ?", 'accesories') 
format.json { render json: { :shop => @shops.as_json(:include => :items) } } 
+0

好的,我会试试这个,我会让你知道状态。 – logesh 2013-04-05 06:57:17

+0

工作完美。非常感谢。 – logesh 2013-04-05 07:14:09

+0

对不起,但另一个疑问。如果我有一个单独的表中的item_types,我指定item_type在该项目表中的id作为参考,我想指定像accesories是“可用”的条件,并显示它是否可用。我应该怎么做? – logesh 2013-04-05 07:32:33

0

一种方法是创建要渲染的对象的哈希,然后传递到渲染方法。像这样:

respond_to do |format| 
    format.json { render :json => {:shops => @shops, 
            :items => @items }} 
end 

如果模型没有通过积极的记录相关联,这可能是您的最佳解决方案。

如果联想确实存在,你可以传递一个:include argument to the render call,就像这样:

respond_to do |format| 
    format.json { render :json => @shops.to_json(:include => [:items])} 
end 

注意,你不会有,如果你采取这种方法来检索上一节的@items变量,滑轨会自动从@shops变量中加载它。