5

APIからRailsアプリリソースにアクセスしようとしています(アプリケーション/ XML GETリクエストを送信します)。XMLファイルを解析する必要はありません。

私のリソースコントローラーには、次のものがあります。

def get_resource
    @my_resource = Resources.new
    render :xml => @my_resource
end

これにより、期待どおりにxmlファイルが生成されます。私がそれを置き換える場合:

render :layout => false

私のAPIは「テンプレートがありません」エラーを報告します。私も次のことを試しました:

render :xml => @identity, :layout => false

しかし、とにかくページはレンダリングされます。これについて行く正しい方法は何ですか?

4

2 に答える 2

9

:xmlをレンダリングする場合、テンプレートも使用しないため、レイアウトは使用されません。:layout => falseを指定することにより、存在しないテンプレートを探すようにrailsに指示します。

ここで、xmlファイルを解析したくない場合は、いくつかの選択肢があります。また:

render :json => @my_resource

また

render :text => "My resource name is: #{@my_resource.name}" # Whatever you want

それはすべて、結果をどのように表示するか、APIが何を受け取ることを期待するかによって異なります。したがって、これが役に立たない場合は、応答をどのように表示するかを示す例を挙げてください。

于 2010-12-02T12:00:31.713 に答える
4
def get_resource
  @my_resource = Resources.new
  respond_to do |wants|
    wants.xml { render :xml => @my_resource }
    wants.html { render :layout => false }
  end
end

この記事を読んでください:http://tokumine.wordpress.com/2009/09/13/how-does-respond_to-work-in-the-rails-controllers/

于 2010-12-02T12:01:07.473 に答える