铁路状态代码和XML

时间:2010-02-26 14:37:17

标签: ruby-on-rails http-status-codes

控制器:

class CategoriesController < ApplicationController
  def create
    @category = Category.create(...)
      respond_to do |format|
        if @category.save
          format.xml { :status => :created }
        else
          format.xml { :status => :unprocessable_entity }
        end
      end
    end
end

查看:

xml.instruct! :xml, :version => "1.0" 
xml.response do
  xml.status( STATUS )
  xml.code( STATUS CODE )
end

如您所见,我在创建控制器操作中设置了状态代码。我的问题是如何在视图中读取此状态代码(例如,STATUS CODE应该是200的数字,OK,STATUS应该是字符串,如“OK”,“Unauthorized”)。我知道我可以创建一个变量,例如@status ='ok'但我不想重复代码。 谢谢答案!

1 个答案:

答案 0 :(得分:1)

将变量从控制器传递到Rails中的视图的方法是使用实​​例变量:

xml.instruct! :xml, :version => "1.0"  
xml.response do 
  xml.status(@status) 
  xml.code(@status_code)
end

但是,我不明白为什么客户端会从返回的XML获取状态和状态代码,因为HTTP响应已经可以获得该信息,即HTTP 200 OK。在XML中提供它也是多余的。

相关问题