我试着告诉rails 3.2默认情况下它应该呈现JSON,并完全像这样踢HTML:
respond_to :json
def index
@clients = Client.all
respond_with @clients
end
使用此语法,我必须将.json
添加到URL。我怎样才能实现它?
答案 0 :(得分:74)
您可以修改routes.rb
文件以指定默认格式
<强>的routes.rb 强>
resources :clients, defaults: {format: :json}
这将修改整个clients_controller
答案 1 :(得分:10)
如果您在索引操作中不需要RESTful响应,那么只需直接呈现您的xml响应:
def index
render json: Client.all
end
答案 2 :(得分:7)
如果要对两者使用相同的控制器操作,则此模式很有效。像往常一样制作网络版,使用:html作为默认格式。然后,将api塞在路径下并将:json设置为默认值。
Rails.application.routes.draw do
resources :products
scope "/api", defaults: {format: :json} do
resources :products
end
end