Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/unit-testing/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Xml 我的sinatra网站将与twilio对话_Xml_Sinatra_Twilio - Fatal编程技术网

Xml 我的sinatra网站将与twilio对话

Xml 我的sinatra网站将与twilio对话,xml,sinatra,twilio,Xml,Sinatra,Twilio,Sinatra将layout.erb中的所有视图包装到您放置在该文件中的任何位置。如果您只向浏览器提供html页面,这将非常好。但是 我们正在编写一个应用程序,它还需要通过XML与Twilio对话。挑战:我们所有的输出都被包装在中发送出去 通过在action.erb文件中指定layout:false,我们成功地绕过了layout.erb post '/incoming' do content_type 'text/xml' @message = "this is working" er

Sinatra将layout.erb中的所有视图包装到您放置在该文件中的任何位置。如果您只向浏览器提供html页面,这将非常好。但是 我们正在编写一个应用程序,它还需要通过XML与Twilio对话。挑战:我们所有的输出都被包装在
中发送出去

通过在action.erb文件中指定layout:false,我们成功地绕过了layout.erb

post '/incoming' do
  content_type 'text/xml'
  @message = "this is working"
 erb :'/incoming.xml', layout: false
end

我相信有一种“更好”的方式让Sinatra提供xml内容,并将非常感谢您在这方面的帮助

如果我正确理解您的情况/问题,那么您正在寻找从Sinatra提供XML(本例中是Twilio的TwiML)的更干净的方式。如果是这样的话,我建议你检查一下。此模块将允许您在路由中动态构建TwiML。如果要使用模板化方法,它还支持模板


可以在上找到构建器的完整文档。

您可以使用twilio ruby gem从您的操作中呈现Twiml,如下所示:

post '/incoming' do
  response = Twilio::TwiML::Response.new do |r|
    r.Say "This is working"
  end

  response.text
end

这将提供twilio所期望的Twiml文档。

谢谢Brent!这正是我想要的。Twilio只是需要通过xml与API通信的一个例子,我不想使用他们的gem只是为了保持