如何通过ajax将变量发布到ruby脚本?

时间:2016-07-14 21:51:00

标签: javascript ruby ajax http-post twilio

这应该很简单我敢肯定,但我是一个超级新手。基本上,有一个网站带有电话号码的表单字段,当用户点击提交时,它会向电话号码发送消息。 (使用Twilio)

的javascript:

$("#phoneNumberButton").click(function(){
console.log( $("#styled").val());

var phoneNumberString = $("#styled").val();
phoneNumberString = phoneNumberString.replace(/\D/g,'');
if ( phoneNumberString.length != 10 ) {
     $('#styled').tooltipster('show');
} else {
$('#phoneNumberButton').text('Link sent!');
$.post( '_/ruby/TwilioSend.rb', {'phoneNumber': phoneNumberString} );

ruby​​('_ / ruby​​ / TwilioSend.rb):

require 'twilio-ruby'

account_sid = "xxxx" 
auth_token = "yyyy"   

@client = Twilio::REST::Client.new account_sid, auth_token
message = @client.account.messages.create(:body => "Hello from Ruby",
:to => params[:phoneNumber],    # Replace with your phone number
:from => "+15555555555")  # Replace with your Twilio number

puts message.sid

当我在终端中使用静态':to'变量执行它时,ruby文件可以正常工作。但我不能让他们一起工作。你能告诉我我做错了什么吗?我确信有很多东西...... fyi,这就是我们使用的所有红宝石。没有其他ruby文件。 php给我们造成了问题。

1 个答案:

答案 0 :(得分:0)

调用Twilio的代码需要在Rails控制器中。 Controller将具有相关的路由,例如:

<!DOCTYPE html>
<html ng-app='exampleApp'>

<head>
  <script src="https://cdnjs.cloudflare.com/ajax/libs/angular.js/1.5.5/angular.min.js"></script>
</head>

<body ng-controller="ExampleController">
  <a ng-click="packageType = 1">Package 1</a>
  <a ng-click="packageType = 2">Package 2</a>
  <a ng-click="packageType = 3">Package 3</a>
  <p ng-repeat="item in packages" ng-show="packageType >= item.packageID">{{item.name}}
  </p>
</body>

</html>