我试图告诉 rails 3.2 它应该默认呈现 JSON,并完全像这样踢 HTML:
respond_to :json
def index
@clients = Client.all
respond_with @clients
end
使用这种语法,我必须添加.json
到 URL。我怎样才能实现它?
我试图告诉 rails 3.2 它应该默认呈现 JSON,并完全像这样踢 HTML:
respond_to :json
def index
@clients = Client.all
respond_with @clients
end
使用这种语法,我必须添加.json
到 URL。我怎样才能实现它?
您可以修改routes.rb
文件以指定默认格式
路线.rb
resources :clients, defaults: {format: :json}
这将修改整个响应的默认格式clients_controller
如果您想对两者使用相同的控制器操作,此模式效果很好。像往常一样制作网页版本,使用 :html 作为默认格式。然后,将 api 放在一个路径下,并将 :json 设置为那里的默认值。
Rails.application.routes.draw do
resources :products
scope "/api", defaults: {format: :json} do
resources :products
end
end
如果您在索引操作中不需要 RESTful 响应,那么只需直接呈现您的 xml 响应:
def index
render json: Client.all
end
扩展 Mark Swardstrom 的答案,如果您的 rails 应用程序是一个始终返回 JSON 响应的 API,您可以简单地做
Rails.application.routes.draw do
scope '/', defaults: { format: :json } do
resources :products
end
end