Shiny happy people coding

Codons avec le sourire

Ajouter des Headers HTTP dans ses réponses Rails

| Comments

Actuellement à fond sur mon projet Rails pour l’école, je me suis heurté à un problème tout bête et je n’ai trouvé aucune documentation complète sur l’API de Rails. En effet, je voulais renvoyé un status 201 et un header HTTP ‘Location’. Dans un premier temps, j’arrivais à faire l’un ou l’autre, mais pas les deux. Le status 201 avec un render :nothing => true, :status => 201, ou le Header Location avec un redirect_to, mais qui envoyait un status 302.

C’est alors que je me suis penché un peu plus sur le code même de rails et encore une fois, il ne faut surtout pas hésiter à mettre les mains dans le camboui.J’ai ainsi découvert l’utilisation des objets response et request disponible directement dans notre controlleur. Ainsi avec un simple :

response.headers['Location'] = 'new/url'

Nous pourrons constater dans notre réponse HTTP l’information suivante : Location : ‘http://localhost:3000/new/url’