0
respond_to do |format|
  format.html { render :html => @something }
  format.json { render :json => @something }
  format.xml { render :xml => @something }
end

ここでは、html、json、xml の 3 つの異なる形式があります。それで、実際に返されるのはどれですか?.html、.xml、.json で終わる 3 つの異なるファイルがありますか? 言い換えると、respond_to は 3 つの html、json、xml ファイルすべてをレンダリングしますか?

4

2 に答える 2

1

Respond_to は、Controller クラス (またはそのスーパー クラス) にアタッチされた Rails ヘルパー メソッドです。ビュー(ブラウザに送られる)に送信される応答を参照しています。

あなたの例のブロックは、ブラウザがhtmlまたはjsonデータを要求するたびにコントローラからビューに送信されるように、ブロック内の「フォーマット」パラメータを渡すことによってデータをフォーマットしています。レールでは、これも書くことができます

class PostsController < ApplicationController
  respond_to :html, :xml, :js

  def index
    @posts = Post.all

    respond_with(@posts)
  end
end
于 2013-04-10T06:48:01.523 に答える
0

respond_to現在の要求に従って、3 つのそれぞれをレンダリングできます。正しい応答は、返されrespond_toたものではなく、実際にレンダリングされたものです。ここで完全な説明を見つけることができます

于 2013-04-10T05:24:47.057 に答える