Rails HTML请求渲染JSON

5
在我的控制器中,我通过以下方法支持HTML和JSON格式的index方法:
respond_to do |format|
  format.html
  format.json { render json: @user }
end

当在浏览器中打开时,它会自然地呈现为HTML。但是,当我使用内容类型为application/json的curl调用/user资源(因为它是索引方法)时,仍然会得到HTML作为响应。

我如何获得JSON作为响应?我还需要指定什么吗?

1个回答

8

如果在 routes.rb 中已经定义了请求的格式,你需要将 .json 添加到请求的 url 中。当使用 resources 时,默认情况下会这样做。例如,rake routes 应该返回类似下面的内容:

show_user GET    /users/:id(.:format) users#show

在HTML中获取用户信息
curl  http://localhost:3000/users/1  

获取JSON格式的用户:

curl http://localhost:3000/users/1.json    

@Darksy:你也可以在浏览器中检查它,使用类似这样的东西 http://localhost:3000/users/1.json。 - rony36

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接