Les paramètres que j'ai reçus dans Rails étaient un peu différents de ce à quoi je m'attendais

Mode API.

Lorsque j'ai utilisé axios pour POSTER l'action tout en utilisant Rails comme API, je l'ai reçu en tant que paramètres sous une forme différente de celle à laquelle je m'attendais du côté de Rails.

de face.ts


  axios.post('/api/v1/users', {id: user.id})

retour.rb


class Api::V1::UsersController < ApplicationController
  def index
  end
end

La valeur envoyée devait être {" id "=> 1},

En regardant le journal, c'était {" id "=> 1," user "=> {" id "=> 1}}.

Cela semble être une spécification du côté des rails.

De même, si vous activez config.wrap_parameters dans vos paramètres d'initialisation, ou si votre contrôleur appelle wrap_parameters, vous pouvez supprimer en toute sécurité l'élément racine de vos paramètres JSON. Par défaut, ce paramètre est dupliqué et encapsulé avec un nom de clé qui correspond au nom du contrôleur. Par conséquent, la requête JSON ci-dessus peut être écrite comme suit: { "name": "acme", "address": "123 Carrot Street" } Si les données sont envoyées à CompaniesController, elles seront enveloppées avec la clé: entreprise comme indiqué ci-dessous. { name: "acme", address: "123 Carrot Street", company: { name: "acme", address: "123 Carrot Street" } }

Rails en mode API est maintenant initialiseur

wrap_parameters.rb


ActiveSupport.on_load(:action_controller) { wrap_parameters format: %i[json] }

Il semble que cela fonctionne parce qu'il y en a.

Cependant, cela ne se produit pas avec une requête GET.

Recommended Posts

Les paramètres que j'ai reçus dans Rails étaient un peu différents de ce à quoi je m'attendais
[Rails] Je souhaite envoyer des données de différents modèles dans un formulaire
J'ai essayé d'organiser la session en Rails
(Capistrano) Après le déploiement, j'obtiens une erreur Désolé ... dans l'environnement de production.
[Rails] Je souhaite afficher la destination du lien de link_to dans un onglet séparé
Je veux utiliser une petite icône dans Rails
[Ruby / Rails] Définissez une valeur unique (unique) dans la classe
Je souhaite définir une fonction dans la console Rails
Je souhaite créer un formulaire pour sélectionner la catégorie [Rails]
Je suis tombé sur un gars avec deux points dans les rails
J'étais confus parce qu'il y avait une scission dans le tableau
[Enregistrement d'apprentissage] J'ai obtenu l'heure actuelle avec Ruby et j'ai sorti un message d'accueil différent à chaque fois.
Que faire si j'écris une clause finally dans la syntaxe try-with-resources?
J'ai essayé d'illuminer le sapin de Noël dans un jeu de la vie
Tri des données Décroissant, croissant / Rails
J'ai créé une fonction de réponse pour l'extension Rails Tutorial (Partie 1)
J'ai récemment créé une application js dans le langage courant de Dart
J'ai créé une fonction de réponse pour l'extension Rails Tutorial (Partie 5):
Je ne vois pas d'erreur dans l'installation du bundle Rails ... la solution
J'ai résumé le flux jusqu'à l'implémentation de simple_calendar dans Ruby on Rails.