Ruby on rails 4 Twilio Ruby SMS:未定义的方法'empty?&x27;

Ruby on rails 4 Twilio Ruby SMS:未定义的方法'empty?&x27;,ruby-on-rails-4,sms,twilio,Ruby On Rails 4,Sms,Twilio,我正在尝试在rails应用程序中使用twilio。作为开发的一部分,我使用一些硬编码的值设置了一个简单的控制器(提交POST请求的表单的输入基本上被忽略)。以下是控制器的代码: class SmsController < ApplicationController def send (dummy) twilio_sid = "removed-for-privacy-reasons" twilio_token = "removed-for-privacy-reasons" twilio_

我正在尝试在rails应用程序中使用twilio。作为开发的一部分,我使用一些硬编码的值设置了一个简单的控制器(提交POST请求的表单的输入基本上被忽略)。以下是控制器的代码:

class SmsController < ApplicationController

def send (dummy)

twilio_sid = "removed-for-privacy-reasons"
twilio_token = "removed-for-privacy-reasons"
twilio_phone_number = "removed-for-privacy-reasons"
number_to_send_to = "removed-for-privacy-reasons"

@twilio_client = Twilio::REST::Client.new twilio_sid, twilio_token

@twilio_client.account.sms.messages.create(
    :from => twilio_phone_number,
    :to => number_to_send_to,
    :body => "This is a test of SendTextController"
)

end
end

那里提供的解决方案没有一个对我有效。你能帮忙吗?

这里是Twilio福音传道者

这真的很有趣

首先是一个简短的旁注:您正在使用
SMS
资源。您应该使用以下选项:

@twilio_client = Twilio::REST::Client.new twilio_sid, twilio_token

@twilio_client.account.messages.create(
  :from => twilio_phone_number,
  :to => number_to_send_to,
  :body => "This is a test of SendTextController"
)
注意,我删除了其中的
.SMS
部分

其次,我承认我不能完全解释细节,我强烈怀疑使用
send
作为你的行动名称会引发各种混乱
#send
来自表单对象,这里您将覆盖它,但是Rails将它用于控制器上的各种不同回调。我注意到您在签名中添加了
(虚拟)
,但是

我不知道为什么,但似乎这就是问题所在。我用您的控制器创建了一个简单的Rails 4.0.4,我遇到了一个类似的问题:

我很想知道这是否适合你。我在Ruby和Rails中看到过奇怪的行为,当不小心命名一个方法
send
,它似乎总是会导致混乱。我不确定你为什么会犯这个错误。这可能是打破了轨道上的某些东西。我这周要调查一下,看看能不能弄明白


让我知道这是否有效,否则我将有另一个裂缝。

xmjw的答案确定了它。在Twilio的支持下,我从Alex Chan那里得到了同样的建议。然而,Xmjw的答案更全面,因为它提到了不推荐使用的API版本

我需要提到的是,我从中复制了控制器的代码,但没有特殊原因,我将控制器方法重命名为“send”。代码产生了“错误数量的参数(1代表0)”,因此我向“send”方法添加了一个伪参数

我遵照Xmjw和Alex Chan的建议,重新命名了控制器方法。我使用了“send-text_message”这个名字,这是Twilio博客上的代码片段中使用的。我开始得到“缺少模板”,但这与twilio无关。放置

head :ok
在send_text_message方法的末尾,删除了该错误消息。我是从一个回复中得到的

简言之,Twilio博客上的代码片段有些过时,但Xmjw和Twilio的Alex Chan的回复将其整理出来。看到Twilio的API得到如此良好的支持,真是令人鼓舞。我真的很兴奋能和它一起工作-谢谢你们,伙计们

undefined method `compile' for #<Twilio::REST::SMS::Message:0x007fea132761e0>

Rails.root: ~/so26076867

Application Trace | Framework Trace | Full Trace
twilio-ruby (3.12.2) lib/twilio-ruby/rest/instance_resource.rb:68:in `method_missing'
activesupport (4.0.4) lib/active_support/callbacks.rb:369:in `__define_callbacks'
activesupport (4.0.4) lib/active_support/callbacks.rb:79:in `run_callbacks'
actionpack (4.0.4) lib/abstract_controller/callbacks.rb:17:in `process_action'
actionpack (4.0.4) lib/action_controller/metal/rescue.rb:29:in `process_action'
actionpack (4.0.4) lib/action_controller/metal/instrumentation.rb:31:in `block in process_action'
activesupport (4.0.4) lib/active_support/notifications.rb:159:in `block in instrument'
activesupport (4.0.4) lib/active_support/notifications/instrumenter.rb:20:in `instrument'
activesupport (4.0.4) lib/active_support/notifications.rb:159:in `instrument'
actionpack (4.0.4) lib/action_controller/metal/instrumentation.rb:30:in `process_action'
actionpack (4.0.4) lib/action_controller/metal/params_wrapper.rb:250:in `process_action'
def test_sms
  twilio_sid = "xxxx"
  twilio_token = "yyyy"
  twilio_phone_number = "zzzz"
  number_to_send_to = "...."

  @twilio_client = Twilio::REST::Client.new twilio_sid, twilio_token

  @twilio_client.account.sms.messages.create(
    :from => twilio_phone_number,
    :to => number_to_send_to,
    :body => "This is a test of SendTextController"
  )   
end
head :ok