Dan*_*nny 4 ruby rest ruby-on-rails ruby-on-rails-3
我试图使用respond_with方法使用rails创建一个简单的rest api,但它不想输出任何类型的状态消息
例如,我希望它不仅可以返回json以获取get调用,还可以返回ok状态.当帖子或删除工作/失败时相同.
一些教程建议使用额外的:状态参数,但它们似乎根本不影响输出.
def index
@conns = Connection.all
respond_with(@conns, :status => :ok)
end
Run Code Online (Sandbox Code Playgroud)
这将返回与if:status =>:ok不存在相同的确切内容.
有任何想法吗??
谢谢!
:status => :ok
设置HTTP标头的状态代码,即它与...相同:status => 200
.如果要向响应主体添加内容,则需要明确添加内容,例如
respond_with({:conns => @conns, :status => :success}.to_json)
编辑
好的,所以这不起作用.如果您不需要响应除JSON之外的任何内容,您可以使用旧的render
:
render :json => { :conns => @conns, :status => :success }
Run Code Online (Sandbox Code Playgroud)
如果你必须使用明亮而有光泽的新respond_with
方法来容纳多个响应类型,你可以创建一个响应的类as_json
:
class JsonResponse
def initialize(data,status)
@data = data
@status = status
end
def as_json(options={})
{
:data => @data,
:status => @status
}
end
end
Run Code Online (Sandbox Code Playgroud)
然后像这样调用它:
@conns = Connection.all
respond_with(JsonResponse.new(@conns,"success"))
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
4587 次 |
最近记录: |