J'essaie de dire Rails 3.2 qu'il devrait rendre JSON par défaut, et lancer HTML complètement comme ceci:
respond_to :json
def index
@clients = Client.all
respond_with @clients
end
Avec cette syntaxe, je dois ajouter .json
à l'URL. Comment puis-je y parvenir?
Vous pouvez modifier votre routes.rb
fichiers pour spécifier le format par défaut
routes.rb
resources :clients, defaults: {format: :json}
Cela modifiera le format de réponse par défaut pour l'ensemble de votre clients_controller
Si vous n'avez pas besoin que RESTful réponde dans votre action d'index, rendez simplement votre réponse xml directement:
def index
render json: Client.all
end
Ce modèle fonctionne bien si vous souhaitez utiliser les mêmes actions de contrôleur pour les deux. Créez une version Web comme d'habitude, en utilisant: html comme format par défaut. Ensuite, placez l'api sous un chemin et définissez: json comme valeur par défaut.
Rails.application.routes.draw do
resources :products
scope "/api", defaults: {format: :json} do
resources :products
end
end