Коды состояния железной дороги и XML

Контроллер:

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 для ОК, СТАТУС должен быть строкой, такой как "ОК", "Несанкционированный"). Я знаю, что могу создать переменную, например, @status = 'ok', но я не хочу дублировать код. Спасибо за ответ!

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 также является излишним.

Другие вопросы по тегам