我能够通过API在我的网站上删除和更新主题但由于某种原因我无法弄清楚为什么我无法创建主题。
我正在我的终端上运行
curl -H "Content-type: application/json" -H "Authorization: Token jX4h98/B3Jx9R0JXYtqeRjzNBzLJs/AFbXckBnkcGKKcuSMUFJ5dqpPbDgFki4G0D5TVrbfvR685Jjo6CQ2qUg==" -X POST -d '{"topic": {"name":"Drastic Voyage: Part II", "description":"The team\'s mission inside Dr. Kovacs goes awry, and they are blacklisted by the CIA."}}' http://localhost:3000/api/v1/topics/
我得到的只是我终端上的>
。
这是我的API主题控制器中的Create方法:
def create
topic = Topic.new(topic_params)
if topic.valid?
topic.save!
render json: topic.to_json, status: 201
else
render json: {error: "Topic is invalid", status: 400}, status: 400
end
end
我的路线:
namespace :api do
namespace :v1 do
resources :users, only: [:index, :show, :create, :update]
resources :topics, except: [:edit, :new]
end
end
任何想法我可能做错了什么?
答案 0 :(得分:1)
您不能在shell中的单引号内使用单引号。如果你绝对需要在一行中完成它,你必须将字符串分成两半并使用连接,如:The team'\''s mission inside
。完整命令如下。
curl -H "Content-type: application/json" -H "Authorization: Token jX4h98/B3Jx9R0JXYtqeRjzNBzLJs/AFbXckBnkcGKKcuSMUFJ5dqpPbDgFki4G0D5TVrbfvR685Jjo6CQ2qUg==" -X POST -d '{"topic": {"name":"Drastic Voyage: Part II", "description":"The team'\''s mission inside Dr. Kovacs goes awry, and they are blacklisted by the CIA."}}' http://localhost:3000/api/v1/topics/
或使用邮递员。它非常方便。 https://www.getpostman.com/