Что означает (.: Формат) в выводе рейк-маршрутов? - программирование
Подтвердить что ты не робот

Что означает (.: Формат) в выводе рейк-маршрутов?

Что означает (.:format) в rake routes '?

users GET    /users(.:format)          users#index
4b9b3361

Ответ 1

Если вы проверили действие 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.