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

ご覧のとおり、コントローラーの作成アクション内にステータス コードを設定しています。私の質問は、ビュー内でこのステータス コードを読み取る方法です (たとえば、ステータス コードは OK の 200 のような数字である必要があり、ステータスは "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

ただし、HTTP応答(つまりHTTP 200 OK)からクライアントがすでに情報を利用できるのに、クライアントが返されたXMLからステータスとステータスコードを取得する理由がわかりません。XMLでそれを提供することも冗長です。

于 2010-02-26T14:58:43.683 に答える