Ответ 1
Вы можете изменить свои файлы routes.rb
, чтобы указать формат по умолчанию
routes.rb
resources :clients, defaults: {format: :json}
Это изменит формат ответа по умолчанию для всего clients_controller
Я пытаюсь сказать rails 3.2, что он должен отображать JSON по умолчанию и полностью удалять HTML следующим образом:
respond_to :json
def index
@clients = Client.all
respond_with @clients
end
С этим синтаксисом я должен добавить .json
в URL. Как я могу это достичь?
Вы можете изменить свои файлы routes.rb
, чтобы указать формат по умолчанию
routes.rb
resources :clients, defaults: {format: :json}
Это изменит формат ответа по умолчанию для всего clients_controller
Если вам не нужен RESTful, отвечающий в вашем действии индекса, просто отрисуйте свой xml-ответ напрямую:
def index
render json: Client.all
end
Этот шаблон работает хорошо, если вы хотите использовать те же действия контроллера для обоих. Создайте веб-версию, как обычно, используя: html в качестве формата по умолчанию. Затем подтяните api под дорожкой и установите: json по умолчанию там.
Rails.application.routes.draw do
resources :products
scope "/api", defaults: {format: :json} do
resources :products
end
end