Что такое «response_to» и «do» и «| format |» в этом коде Rails? - PullRequest
12 голосов
/ 23 августа 2010
class PostsController < ApplicationController
  # GET /posts
  # GET /posts.xml
  def index
    @posts = Post.all

    respond_to do |format|
      format.html # index.html.erb
      format.xml  { render :xml => @posts }
    end
  end
...
  • Что такое «response_to» Это часть рельсов?
  • Что такое «do» и «| format |»?Почему существуют вертикальные разделители вокруг формата?
  • Как Rails узнает о модели Post?Я не импортировал эту модель.(В Python / Django вы должны импортировать модель, прежде чем сможете ее использовать)

Это из учебника по Ruby on Rails: http://edgeguides.rubyonrails.org/getting_started.html#setting-the-application-home-page

Ответы [ 3 ]

13 голосов
/ 23 августа 2010

respond_to - это метод, специфичный для рельсов, который определяет, как реагировать на запросы для различных форматов (таких как xml и html).do и |format| очерчивают рубиновый блок: do действует как открывающая скобка, end - как закрывающая скобка, а |format| определяет переменную блока, которая получает свое значение из оператора yield вresponds_to.

2 голосов
/ 15 января 2013

"do" - это блок RUBY, а "| format |" может быть чем угодно, это просто переменная для использования внутри этого блока, вот еще один пример:

respond_to do |x|
  x.html # index.html.erb
  x.xml  { render :xml => @posts }
end
0 голосов
/ 17 января 2013
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...