Rails HTML请求呈现JSON

时间:2013-06-11 06:53:04

标签: ruby-on-rails ruby json

在我的控制器中,我通过以下方式在index方法中支持HTML和JSON:

respond_to do |format|
  format.html
  format.json { render json: @user }
end

在浏览器中提取时,它会自然地呈现HTML。但是,当我对application/json资源的内容类型为/user进行卷曲调用时(因为它是索引方法),我仍然会将HTML作为响应。

如何将JSON作为回复?我还需要指定什么?

1 个答案:

答案 0 :(得分:8)

您应该将.json附加到请求的网址,提供的格式在routes.rb的路径中定义。使用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