Pour les demandes effectuées de manière asynchrone "Un mécanisme pour préparer un mécanisme pour répondre aux données demandées" est réalisé en créant une API.
Rails renvoie par défaut du HTML, Il est également possible de renvoyer des données au format JSON afin qu'elles puissent être gérées à partir de JavaScript.
Il existe plusieurs façons d'ajouter des API dans Rails. Cette fois, comment l'ajouter au contrôleur (action).
Écrivez pour renvoyer JSON au lieu de HTML.
Mettre en œuvre pour des actions. Créez Songcolor dans les cas suivants. Ensuite, décrivez dans quel format la demande est renvoyée (réponse).
<Exemple A>#####_controller.rb (contrôleur correspondant)
def create
@songcolor = Songcolor.create(color: params[:color], song_id: params[:song_id])
respond_to do |format|
format.json
end
end
▼ ▼ Details Détails ▼ ▼ En utilisant une méthode appelée respond_to Vous pouvez créer une réponse en fonction du format. Il correspond à l'implémentation de "rendre possible le retour au format JSON". À l'avenir, il sera nécessaire de créer un fichier au format JSON "create.json.jbuilder" avec celui-ci. Décrivez les données à renvoyer. De plus, le nom du fichier doit être le même que le nom de l'action pour qu'il corresponde. Cette fois, cela correspond à l'action de création, donc ce sera "create.json.jbuilder".
<Exemple> Reprenez la plage importante du code ci-dessus
respond_to do |format|
format.json
end
En écrivant dans l'action Après 〇〇 (action), renvoyez-le par la méthode selon la requête après respond_to ci-dessus.
Vous pouvez également ajouter {} au rendu pour le terminer comme indiqué ci-dessous.
<Exemple>#####_controller.rb
respond_to do |format|
format.json {
render json: { id: @user.id, name: @user.name }
}
end
ruby:<Exemple> application/views/messages/show.json.jbuilder
json.content @message.content
=> { content: "@contenu du message" }
jbuilder a une clé à gauche et une valeur à droite json.content est la clé, @ message.content est la valeur
Dans mon application
Mettez le nom correspondant à l'action dans 〇〇 Créez 〇〇.json.jbuilder.
Terminal
%nom de l'application/views/messages/〇〇.json.jbuilder
La description à l'intérieur est basée sur le contenu décrit précédemment [Référence](https://qiita.com/kusaharajiji/items/3b374c73c12233485feb#jsonjbuilder%E3%81%AE%E3%83%95%E3%82%A1%E3%82 % A4% E3% 83% AB% E3% 82% 92% E4% BD% 9C% E6% 88% 90% E3% 81% 99% E3% 82% 8B% E5% A0% B4% E5% 90% 88 ).
Il est chargé lorsque les caractères "Rendered" et "jbuilder" sont visibles.
C'est la fin! !!
Le flux ultérieur de communication asynchrone crée également un article.
Le mécanisme de l'API est de décrire le contenu du contrôleur. Après cela, des informations seront échangées. Je me demande si jbuilder décidera du contenu des données et Ajax transmettra les données. Je n'ai pas suffisamment étudié le type de travail, d'où et où.
--Description (clé et valeur) lors de l'exécution avec uniquement le contrôleur qui ne crée pas le fichier jbuilder --Comment écrire dans jbuilder (également clé et valeur)
Je voulais approfondir ma compréhension de cela.
Le flux de communication asynchrone est entièrement décrit depuis l'introduction de jQuery [ici]([ttps: //kayoblog.org/programming_myapp_hidoukitushin/)
Recommended Posts