根据4.2发行说明中的respond_with / respond_to说明...... Ruby Guides和:
我想借此机会将respond_with / class-level respond_to拆分为外部插件。我通常不喜欢使用这种模式的代码。它鼓励模型#to_json,它以隐藏代码的方式隐藏HTML和API响应之间的差异。
那么我们如何将它拆分为4.2的gem,具有当前行为,还可以选择通过配置点获得此行为的新行为。 - DHH
我已经安装了ActiveModelSerializer 0.9.3并且我发现它仍然适用于:
render json: @object
......
如何在应用程序控制器中默认render json:
?
答案 0 :(得分:3)
您不需要直接从应用程序控制器渲染任何视图,而是从扩展ApplicationController的控制器渲染。 如果你说respond_with仍然在你的rails版本中工作,那么你只需要把respond_to:json放在如下:
class MyController < ApplicationController
respond_to :json
def my_action
....
respond_with(@variable)
end
end
respond_with将根据您的请求的mime类型自动呈现正确格式的视图。
如果它不起作用,则添加gem&#39; responders&#39;,&#39;〜&gt; 2.0&#39;到您的宝石文件。
答案 1 :(得分:2)
您可以修改routes.rb
文件以指定默认格式
routes.rb
resources :clients, defaults: {format: :json}
这将修改整个clients_controller