How does the respond_to block work in rails?

respond_to is a Rails helper method that is attached to the Controller class (or rather, its superclass). It is referencing the response that will be sent to the View.

  • respond_to is a method on the superclass ActionController.
  • it takes a block, which is like a delegate. The block is from do until end, with |format| as an argument to the block.
  • respond_to executes your block, passing a Responder into the format argument.
def index
  @posts = Post.all

  respond_to do |format|
    format.html  # index.html.erb
    format.json  { render :json => @posts }
    format.csv   { render :csv => @posts }
    format.js
  end
end

Source