我想仅使用浏览器测试来自Rails控制器GET操作的JSON响应。
如果资源的url是http://localhost:3000/models/action
,我如何告诉rails将响应作为JSON返回?
一旦你弄清楚如何去做,这很简单。
您可以通过将类型添加为操作的扩展名来指定响应的类型。
例如,如果我们想要json响应,可以将请求更改为http://localhost:3000/models/action.json
。
您必须在控制器中定义响应格式:
def action
@objects = Model.all
respond_to do |format|
format.html
format.json
end
end
或作为捷径
def action
@objects = Model.all
respond_to :html, :json
end
或处理控制器级别的格式
class ModelsController < ApplicationController
respond_to :html, :json
def action
@objects = Model.all
respond_with(@objects)
end
end
现在,当您调用http://localhost:3000/models/action.json
时,响应将是JSON格式