我正在开发我的网络应用程序的 API。它是一个 Rails 2 应用程序,REST API 响应 XML。
例如,我需要返回一个错误,以防无法取消订阅列表中的联系人。因此,我用 Unprocessable Entity (422) 响应,并在 XML 中包含错误消息。这是实际的代码:
respond_to do |format|
begin
...
format.xml { head :ok }
rescue => e
format.xml { render :xml => e.to_s, :status => :unprocessable_entity }
end
end
问题是,在另一边,当有人使用 ActiveResouce 进行申请时,错误到达时消息为空,如下所示:
ActiveResource::ResourceInvalid: Failed. Response code = 422. Response message = .
我是否需要在响应中放入任何 XML 结构或标记,响应消息不能为空?
谢谢
最佳答案
这对我来说不正确:
format.xml { render :xml => e.to_s, :status => :unprocessable_entity }
render :xml
,应该传递一个 XML 字符串。尝试用这样的东西替换它:
format.xml { render :xml => "<message ='#{e.to_s}'/>", :status => :unprocessable_entity }
关于ruby-on-rails - 在 XML 响应中返回错误消息,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8604101/