我正在尝试从JSON中的多个模型中呈现结果。我的控制器中的以下代码仅呈现第一个结果集:
def calculate_quote @moulding = Moulding.find(params[:id]) @material_costs = MaterialCost.all respond_to do |format| format.json { render :json => @moulding } format.json { render :json => @material_costs } end end
任何帮助将不胜感激,谢谢。
一种执行此操作的方法是使用您要渲染的对象创建一个哈希,然后将其传递给render方法。像这样:
respond_to do |format| format.json { render :json => {:moulding => @moulding, :material_costs => @material_costs }} end
如果未通过活动记录关联模型,则可能是最好的解决方案。
如果存在关联,则可以将:include参数传递给render调用,如下所示:
:include
respond_to do |format| format.json { render :json => @moulding.to_json(:include => [:material_costs])} end
请注意,@material_costs如果采用这种方法,则不必在上一节中检索变量,Rails将从@moulding变量中自动加载它。
@material_costs
@moulding