首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >调用api时的多个render in rails控制器操作

调用api时的多个render in rails控制器操作
EN

Stack Overflow用户
提问于 2016-06-14 02:39:08
回答 2查看 474关注 0票数 1

我希望我的rails控制器索引操作一次呈现多个输出,我的控制器:

代码语言:javascript
复制
 class Api::V1::Ola::OlaBookingsController < ApplicationController
 def index
   lat = params[:lat].to_s
   long = params[:long].to_s
   drop_lat = params[:drop_lat].to_s
   drop_lng = params[:drop_lng].to_s    
   ola_query = { 
     "pickup_lat" => lat,
     "pickup_lng" => long,
     "drop_lat" => drop_lat ,
     "drop_lng" => drop_lng
   }
   ola_body = {
     "pickup_lat" => lat,
     "pickup_lng" => long,
     "drop_lat" => drop_lat,
     "drop_lng" => drop_lng,
     "pickup_mode" => "NOW",
     "category" => "auto"
   } 
   ola_headers = {
     "Authorization" => "Bearer ", 
     "X-APP-TOKEN" => ""
   }

   @ola_products = HTTParty.get(
     "http://sandbox-t.olacabs.com/v1/products", 
     :query => ola_query,
     :headers => ola_headers
   ).parsed_response

   @ola_booking = HTTParty.post(
     "http://sandbox-t.olacabs.com/v1/bookings/create ", 
     :body => ola_body,
     :headers => ola_headers
   ).parsed_response

  render :json => @ola_booking 
  render :json => @ola_products 
  end
end

我希望两个响应都在控制器上,而不是生成viw。但是它给出了错误“多个渲染不可能”,如何修复它?

EN

回答 2

Stack Overflow用户

发布于 2016-06-14 03:05:57

你不能有2个渲染,你可以做的是一个接一个地组合这两个对象,就像这样

代码语言:javascript
复制
render :json => @ola_booking.to_json + @ola_products.to_json

你应该试一试,让我知道它是如何工作的

票数 2
EN

Stack Overflow用户

发布于 2016-06-14 18:21:47

你可以试试这个。

代码语言:javascript
复制
respond_to do |format|
  format.json  { render :json => {:ola_booking => @ola_booking, 
                                  :ola_products => @ola_products }}
end
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/37796929

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档