0

これは生成されるデフォルトの Rails コードです。(ドキュメントの説明から) コードの動作は理解できますが、どのように動作するかはわかりません。

  1 class PostsController < ApplicationController
  2   # GET /posts
  3   # GET /posts.json
  4   def index
  5     @posts = Post.all
  6 
  7     respond_to do |format|
  8       format.html # index.html.erb
  9       format.json { render json: @posts }
 10     end
 11   end

私が理解していること:

  • Post.allインスタンス変数 @posts に保存されているすべての投稿の配列を返します
  • respond_tofunction はデフォルトの 'block' を取ります (1 つのパラメーター 'format' を取る無名関数ブロック)
  • 要求された形式に応じて、対応する出力が返されます

わからないこと:

  • それは実際にどのように機能しますか?行番号 8 は、渡された形式に関係なく、オブジェクトの関数htmlメソッドを呼び出します。formatメソッドは何をしhtmlますか?両方のメソッドが毎回呼び出されるのはなぜですか? 彼らは?
  • なぜjsonメソッドは引数 (render を呼び出すブロック) を必要とするのに、htmlメソッドは引数を必要としないのですか?
  • この関数は何かを返しますか? jsonメソッドの戻り値を返すようです。

私はRubyとRailsが初めてで、例を始めているので、各行が何をするのかを詳しく知りたいです.

4

2 に答える 2