2011-04-14 3 views
103

Je suis en train de créer un utilisateur sur mes rails application avec une commande curl de os x terminal. Peu importe comment je formate les données, l'application renvoie une réponse qui n'a pas été validée par aucune de mes validations.curl json post demande via terminal à une application rails

curl http://localhost:3000/api/1/users.json -i -X POST -d {"user":{"first_name":"firstname","last_name":"lastname","email":"[email protected]","password":"app123","password_confirmation":"app123"}}" 

J'ai essayé toutes les variantes. J'ai essayé d'utiliser [] entre crochets, j'ai essayé user = {data ..} et rien ne semble fonctionner. Des idées?

+0

Pourquoi ne pas simplement utiliser' $ rails et c' 'User.create:. Prenom => ' John ',: last_name =>' Smith ', ... '? – coreyward

+22

@coryward: Cela irait à l'encontre de l'objectif d'une API – Wukerplank

+0

il m'a vraiment perplexe –

Répondre

216

Tout d'abord, il y a une source étrangère »à la fin de votre commande

Essayez cette

curl -v -H "Accept: application/json" -H "Content-type: application/json" -X POST -d ' {"user":{"first_name":"firstname","last_name":"lastname","email":"[email protected]","password":"app123","password_confirmation":"app123"}}' http://localhost:3000/api/1/users 
+0

à était-ce. J'ai compris hier soir qu'il avait besoin du -H Accept et du Content-type. –

+0

Bonjour, j'appelle un script comme celui-ci: http://www.abc.com/?a=4&b={"x":"y "}. Pouvez-vous me dire à quoi cela ressemblerait dans Curl Terminal ?? – user739711

+0

hmmm dans mon cas, je devais entourer l'URL cible avec des guillemets –