Как заставить мое приложение отвечать на формат, основанный на параметре строки запроса?
Например, я хотел бы
/ яблоки /123?_format= JSON
вести себя как
/apples/123.json
где он отображает шаблоны *.json.*, выполняет response_to {|format| format.json {...}} и т. д.
Это вообще возможно?
Спасибо!
1 ответ
Решение
Вы можете сделать следующее, чтобы отключить автоматическую обработку Rails .ext
формат:
constraints format: false do
resources :apples
# ...
end
Тогда, и это немного грубо, но я не вижу лучшего способа сделать это в данный момент, вы можете сделать следующее, чтобы обновить ActionController в том формате, который вы хотите обслуживать:
class ApplicationController < ActionController::Base
before_filter :set_format_from_query_string
private
def set_format_from_query_string
request.format = params.fetch(:_format, 'json')
end
end
Это позволит вашему respond_to
блок для переключения на основе _format
параметр строки запроса и использует json
в качестве формата по умолчанию.