我想用 json 响应所有格式。
我可以强制渲染格式,以便尽管有标题json
,动作也会渲染:show.json
accept
def show
render formats: :json
end
如何为控制器的所有操作设置渲染格式?
像这样的东西:
class GalleriesController < ApplicationController
formats :json
end
我想用 json 响应所有格式。
我可以强制渲染格式,以便尽管有标题json
,动作也会渲染:show.json
accept
def show
render formats: :json
end
如何为控制器的所有操作设置渲染格式?
像这样的东西:
class GalleriesController < ApplicationController
formats :json
end
作为对未来用户的问题和可读性的所有评论的总结,您可以这样做,如此处所述:
before_filter :default_format_json
def default_format_json
request.format = "json"
end
在您的控制器中:
def my_action
formats.clear
formats << :json
end
(我只在 Rails 4.2 和 3.2 中测试过。)
formats
返回格式符号数组。它被委托给@_lookup_context
,它是 的一个实例ActionView::LookupContext
。
覆盖响应内容类型。在此处阅读有关响应对象的更多信息:http: //guides.rubyonrails.org/action_controller_overview.html#the-response-object
before_filter :force_json
def force_json
response.content_type = Mime[:json]
end
使用 response_to:
def action
respond_to do |format|
format.any(:html, :js, :json) { render json: @object.to_json }
end
end