Если вы проверили действие index вашего Users Controller, то вы увидите что-то вроде этого
def index
@users = User.all
respond_to do |format|
format.html # index.html.erb
format.json { render json: @users }
end
end
Таким образом, этот формат является типом ответа, который будет сгенерирован.
В маршрутах создается заполнитель для типа ответа независимо от того, какой формат был определен в действии контроллера.
Итак, если ваш URL-адрес выглядит примерно так: -
users GET /users --> users/index.html.erb will be rendered
users GET /users.json --> users/index.json.erb will be rendered
Аналогично, если вы хотите отклик в формате PDF или xls, то вам просто нужно определить format.pdf или format.xls, а также вы должны определить эти новые типы MIME, которые по умолчанию отсутствуют в рельсах в файле инициализации.
Итак, тогда, если запрос выполнен как: -
users GET /users.xls --> users/index.xls.erb will be rendered
Затем ваш файл маршрутов просто ищет format.xls в действии индекса, и соответствующий файл представления будет отображаться users/index.xls.erb.