Может кто-нибудь объяснить мне, что делает reply_to?(Rails) - PullRequest
1 голос
/ 28 августа 2010

Таким образом, когда генерируется scaffodl, контроллер автоматически создает эти блоки (?) Следующим образом

respond_to do |format|
      format.html
      format.xml  { render :xml => @c }
    end

что это на самом деле делает и почему у него есть format.html и format.xml? Что каждый из них делает?

Ответы [ 2 ]

8 голосов
/ 28 августа 2010

Определяет, что текущее действие будет реагировать на различные форматы (содержимое действия может отображаться разными способами, а не только в виде старого HTML).

  • Если вы откроете браузер и введете /my/path/to/action.html, он будет отображать HTML (из шаблона);
  • Если вы введете /my/path/to/action.xml, он будет отображать XML с использованием { render :xml => @c }. XML будет сгенерирован Rails путем вызова метода to_xml для переменной @c;
  • Однако, если вы укажете на /my/path/to/action.json, он выдаст ошибку 404.
0 голосов
/ 29 августа 2010

Rails использует MIME type запроса, определенного заголовком или форматом Accept (/controller/action/5.xml; /controller/action/5.html; /controller/action/5.json; и т. Д.), Чтобы определить формат ответа действия контроллера, который отображается назапрашиваемый URL.

Таким образом, рельсы могут автоматически отображать разные форматы контента для разных типов запросов к одному действию контроллера.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...