Ответ 1
Это формат запрашиваемого файла. Например, если вы хотите изображение, у вас, вероятно, будет расширение файла в запросе - например, example.com/example_image.png
предоставит вам формат как png
. Затем этот запрос включается в запрос, поэтому вы можете изменять тип ответа на основе запрошенного формата.
Для примера использования вы можете позволить ресурсу быть представленным как pdf, как обычную html-страницу и как json - вы, вероятно, напишете что-то вроде этого:
respond_to do |format|
format.html { ... }
format.pdf { ... }
format.json { ... }
end
Затем имеют отдельные вызовы рендеринга в соответствующих форматах.
EDIT:
Объяснение GET /:controller(/:action(/:id(.:format))) :controller#:action
-
Сначала немного о форматировании. Скобки означают, что данный фрагмент данных является необязательным. Двоеточие означает, что любая строка, которую он находит в соответствующем URL-адресе, должна быть передана контроллеру в хеше params.
Это, по сути, подстановочный знак, будет пытаться соответствовать очень большому количеству запросов к контроллеру. Например, скажем, это ваш единственный маршрут, и кто-то пытается получить "/users". Это отобразит users
в UsersController
и по умолчанию вызовет/отринит index
внутри него. Если кто-то получит users/new
, будет вызвано действие new
в контроллере. Если вызываются id
и format
, они также будут переданы вместе с контроллером.