1

控制器:

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

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

4

1 回答 1

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 中提供它也是多余的。

于 2010-02-26T14:58:43.683 回答