Ruby on rails 单个Rails控制器操作中的多个JSON响应
在我的应用程序和响应块中的控制器上有我的show方法Ruby on rails 单个Rails控制器操作中的多个JSON响应,ruby-on-rails,json,Ruby On Rails,Json,在我的应用程序和响应块中的控制器上有我的show方法 respond_to do |format| format.html { render :layout =>'placing', :next_days => @next_days}# show.html.erb format.xml { render :xml => @artist } format.json { render :partial => "places/show.json", :artist
respond_to do |format|
format.html { render :layout =>'placing', :next_days => @next_days}# show.html.erb
format.xml { render :xml => @artist }
format.json { render :partial => "places/show.json", :artist => @artist } }
end
例如,这将基于/places/1.json中的show.json部分生成一个json输出,但是如果我还需要一个json输出,比如/places/alternative_1.json,该怎么办?如果respond_to中已经有一个json格式块,我该怎么做
感谢您的帮助
干杯 然后您必须在
格式.json中创建一些逻辑,更改与:partial(当前是“places/show.json”
)关联的内容,或者创建另一个路由
由于format.json{render…}
是普通的Ruby代码,您可以执行以下操作:
format.json do
json_partial = json_for_this_case #example
render :partial => json_partial, :locals => {:artist => @artist}
end
这感觉更像是一个路由问题,而不是回答问题。您将如何获得其他输出?你指明了一条路,但这是唯一的路吗?您是否将以任何方式返回相同的变量,以便相同的响应将起作用?或者它是一个完全不同的逻辑集,将返回不同的数据集?您好,这是相同的数据。。。问题是:当前的format.json必须保留在那里,它呈现包含特定格式数据的分部。我希望在同一个控制器操作中有另一个json响应,但似乎不可能。无论如何,解决方法是在控制器中创建另一个操作,并对其进行路由。然后它将类似于/places/manage/1。