Ruby-on-rails:レンダリングのヘルプ:レイアウト=> false
-
30-09-2019 - |
質問
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
しかし、とにかくページはレンダリングされます。これについて正しい方法は何ですか?
解決
レンダリングする場合:XMLは、テンプレートも使用しないため、レイアウトを使用しません。指定することで:layout => falseでは、Railsに存在しないテンプレートを探すように指示します。
さて、XMLファイルを解析したくない場合は、いくつかの選択肢があります。また:
render :json => @my_resource
また
render :text => "My resource name is: #{@my_resource.name}" # Whatever you want
それはすべて、結果をどのように見たいか、APIが受信することを期待するものに依存します。したがって、これが役に立たない場合は、応答がどのように見えるかの例を挙げてください。
他のヒント
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/
所属していません StackOverflow