我正在尝试以 JSON 格式呈现多个模型的结果。我的 Controller 中的以下代码仅呈现第一个结果集:
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
任何帮助将不胜感激,谢谢。
最佳答案
您可以这样做的一种方法是使用要渲染的对象创建一个散列,然后将其传递给渲染方法。像这样:
respond_to do |format|
format.json { render :json => {:moulding => @moulding,
:material_costs => @material_costs }}
end
如果模型不通过事件记录关联,那可能是您最好的解决方案。
如果关联确实存在,您可以将 :include
参数传递给渲染调用,如下所示:
respond_to do |format|
format.json { render :json => @moulding.to_json(:include => [:material_costs])}
end
请注意,如果您采用这种方法,则不必在上面的部分中检索 @material_costs
变量,Rails 会自动从 @moulding
变量中加载它.
关于ruby-on-rails - Ruby on Rails - 为多个模型渲染 JSON,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4318962/