Rendre JSON au lieu de HTML par défaut?
J'essaie de dire des rails 3.2 qu'elle devrait rendre JSON par défaut, et coup de pied HTML complètement comme ceci:
respond_to :json
def index
@clients = Client.all
respond_with @clients
end
Avec cette syntaxe, j'ai du ajouter .json
à l'URL. Comment puis-je l'atteindre?
Vous devez vous connecter pour publier un commentaire.
Vous pouvez modifier votre
routes.rb
fichiers pour spécifier le format par défautroutes.rb
Cela va modifier la valeur par défaut format de réponse pour l'ensemble de votre
clients_controller
defaults
bloc:defaults format: 'json' {resources :clients; resources :products}
.namespace :api, { defaults: { format: :json } } do
. Im actuellement que sur des Rails 5Si vous n'avez pas besoin de Réparateur de répondre à votre action "index", puis tout simplement rendre votre réponse xml directement:
index
ne devriez pas répondre à html et vous souhaitez répondre à json même w/o .json dans votre url.Ce modèle fonctionne bien si vous souhaitez utiliser le même contrôleur actions pour deux. Faire une version web, comme d'habitude, à l'aide de html comme format par défaut. Ensuite, poussez les api en vertu d'un chemin et set :json que le défaut n'.