控制器:
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'但我不想重复代码。 谢谢答案!
答案 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中提供它也是多余的。