【发布时间】:2016-06-18 21:01:43
【问题描述】:
到目前为止,我的团队已经使用 HTTP 请求在我们的项目中创建和修改特定的 ActiveRecord 对象。相关的控制器方法只呈现为 json:
render json: { json: 'goes here' }
我正在创建一个基本的 CRUD 接口来执行此操作,它应该呈现一个 HTML 页面 (render :html) 但是,我们还有一个辅助 API,它依赖于能够通过 HTTP 请求调用这些控制器操作并获得一个json 响应返回。
我尝试使用respond_to 块来实现此目的:
respond_to do | format |
format.json { render json: { json: 'goes here' } }
format.html # Appropriate view
end
但是,即使使用直接 HTTP 请求(在终端中使用 cURL 进行测试),我总是会收到 HTML 响应。我尝试在路由文件中使用constraint,但即使这样也无法得到 JSON 响应。
为了从 HTTP 请求获得 JSON 响应,同时在请求来自表单时仍呈现适当的视图,我还需要在服务器端还是客户端做些什么?谢谢!
【问题讨论】:
-
Rails 根据客户端提交的 HTTP Accept 标头确定所需的响应格式。您确定您将正确的值传递给您的标头吗?
标签: ruby-on-rails ruby json activerecord