2015-07-12 78 views
1

我很新的RoR,我正在学习飞行。这就是说,我试图解析从Formstack发送到我的脚本的POST请求。我可以通过访问它的URL来查看和运行脚本,并且它运行得很好,当我将Webhook指向Formstack中的URL时,没有任何反应。我从命令行运行了下面的curl请求,并且返回了404错误。404当发送JSON到RoR与卷曲

curl -H "Content-Type: application/json" -d '{"FormID":"1234","UniqueID":"1234","Name":{"first":"John","last":"Smith"},"Email":"[email protected]","Phone":"(555) 555-555","Company":"Test Company"}' -X POST "http://scripturl.com" 

我检查了与requestb.in一起发送的数据,并且一切正常发送。那么为什么当JSON数据被发送时它会返回一个404错误,但是当我在浏览器中查看它时运行得很好?我的示例代码如下。

firstName = params[:Name]["first"] 
lastName = params[:Name]["last"] 
email = params["Email"] 
company = params["Company"] 
phone = params["Phone"] 
client.create('contact', firstname: firstName, lastname: lastName, emailaddress1: email, subject: "Test", companyname: company, mobilephone: phone) 

这里是日志/ production.log的内容:

rack (1.6.4) lib/rack/sendfile.rb:113:in `call' 
    railties (4.2.3) lib/rails/engine.rb:518:in `call' 
    railties (4.2.3) lib/rails/application.rb:165:in `call' 
    passenger (5.0.13) lib/phusion_passenger/rack/thread_handler_extension.rb:94:in `process_request' 
    passenger (5.0.13) lib/phusion_passenger/request_handler/thread_handler.rb:157:in `accept_and_process_next_request' 
    passenger (5.0.13) lib/phusion_passenger/request_handler/thread_handler.rb:110:in `main_loop' 
    passenger (5.0.13) lib/phusion_passenger/request_handler.rb:415:in `block (3 levels) in start_threads' 
    passenger (5.0.13) lib/phusion_passenger/utils.rb:111:in `block in create_thread_and_abort_on_exception' 
+0

你在轨道日志中遇到什么错误? –

+0

用输出编辑原始文章 – Kyle

回答

1

我发现这个问题。我不得不添加以下内容的config/routes.rb文件:

post '/add' => 'contacts#add' 

然后在控制器/ application_controller.rb,则需要更换此:

protect_from_forgery with: :exception 

有了这个:

protect_from_forgery with: :null_session