Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/google-cloud-platform/3.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
Ruby on rails 使用nexmo gem从rails中的输入字段发送SMS_Ruby On Rails_Forms_Nexmo - Fatal编程技术网

Ruby on rails 使用nexmo gem从rails中的输入字段发送SMS

Ruby on rails 使用nexmo gem从rails中的输入字段发送SMS,ruby-on-rails,forms,nexmo,Ruby On Rails,Forms,Nexmo,我正在尝试使用Nexmo gem向输入字段中输入的号码发送短信 这就是我目前所拥有的,但它似乎不起作用 pages/test.html.erb <%= form_tag "/pages/send_sms" do -%> <%= text_field_tag "number" %> <%= submit_tag "Send" %> <% end -%> pages\u controller.rb def send_sms @numb

我正在尝试使用Nexmo gem向输入字段中输入的号码发送短信

这就是我目前所拥有的,但它似乎不起作用

pages/test.html.erb

<%= form_tag "/pages/send_sms" do -%>
  <%= text_field_tag "number" %>
  <%= submit_tag "Send" %>
<% end -%>
pages\u controller.rb

def send_sms
    @number = params[:number]
    nexmo = Nexmo::Client.new(
    key: ENV['NEXMO_API_KEY'],
    secret: ENV['NEXMO_API_SECRET']
    )
    notification = "Download the app through this link"


    response = nexmo.send_message(
      from: "GLAM360",
      to: params['number'],
      text: notification
    )
    if response['messages'].first['status'] == '0'
      redirect_to root_path
    end

  end
这是我在终点站看到的

Started POST "/pages/send_sms" for 127.0.0.1 at 2017-10-08 00:35:45 +0400
Processing by PagesController#send_sms as HTML
  Parameters: {"utf8"=>"✓", "authenticity_token"=>"zPj5PcZrD+uNYxvvfDio8B5uNWitg0vMw+3Vm8KbvQumbNWzsgN4sBJDKsi2srx0rSatiOISegWHQFE860
JxcA==", "number"=>"+971585959698", "commit"=>"Send"}
No template found for PagesController#send_sms, rendering head :no_content
Completed 204 No Content in 803ms

在此将非常感谢您的任何帮助

错误本身会告诉您该怎么做。你几乎没有选择

  • 首先,对于您的情况,如果上次检查失败,只需添加另一个重定向 条件失效。在您的情况下,它失败了,因此要求使用默认模板。如果指定else子句,则 描述它应该去哪里(再次向表单发送一条警告消息),rails将自己处理这个问题
  • if响应['messages'].first['status']=='0'
    将\重定向到根\路径
    其他的
    重定向到测试路径
    结束

  • 我使用了您的脚本并添加了一个状态为的send_sms.html.erb 根据响应从控制器传递的变量 使用nexmo.send_message函数。比如“成功”或“失败”以及 一切正常,在网页上它告诉我状态,我也收到了一条短信。这是我想要的更好的用户体验。 .
  • 如果我必须这么做,我会对脚本做很多修改。建议永远不要依赖外部API,始终将您对外部API所做的交互封装在接口中。我将包装Nextio脚本,将其从控制器中取出,并将其放置在接口中(在lib中有一个类或在helper中有一个包装函数,并使用接口与之交互),然后通过控制器与之交互。尽量不要将逻辑放入控制器中。我还将使用begin rescue块与外部API进行交互,并将阅读所有错误并思考如何处理它们。最后,对于流,我会给用户更多的信息,而不是让他们挂断。我会把他们重定向到另一个页面,比如发送短信,告诉他们状态,或者用提醒信息告诉他们状态如何
  • 最后,我将使用这些作业的后台任务(这可能需要一些时间,具体取决于外部服务器)。使用类似sidekiq的东西

  • 错误本身告诉您该怎么做。你几乎没有选择

  • 首先,对于您的情况,如果上次检查失败,只需添加另一个重定向 条件失效。在您的情况下,它失败了,因此要求使用默认模板。如果指定else子句,则 描述它应该去哪里(再次向表单发送一条警告消息),rails将自己处理这个问题
  • if响应['messages'].first['status']=='0'
    将\重定向到根\路径
    其他的
    重定向到测试路径
    结束

  • 我使用了您的脚本并添加了一个状态为的send_sms.html.erb 根据响应从控制器传递的变量 使用nexmo.send_message函数。比如“成功”或“失败”以及 一切正常,在网页上它告诉我状态,我也收到了一条短信。这是我想要的更好的用户体验。 .
  • 如果我必须这么做,我会对脚本做很多修改。建议永远不要依赖外部API,始终将您对外部API所做的交互封装在接口中。我将包装Nextio脚本,将其从控制器中取出,并将其放置在接口中(在lib中有一个类或在helper中有一个包装函数,并使用接口与之交互),然后通过控制器与之交互。尽量不要将逻辑放入控制器中。我还将使用begin rescue块与外部API进行交互,并将阅读所有错误并思考如何处理它们。最后,对于流,我会给用户更多的信息,而不是让他们挂断。我会把他们重定向到另一个页面,比如发送短信,告诉他们状态,或者用提醒信息告诉他们状态如何
  • 最后,我将使用这些作业的后台任务(这可能需要一些时间,具体取决于外部服务器)。使用类似sidekiq的东西

  • 看起来响应状态不是0,因此它正在查找send_sms视图模板。我假设您没有发送短信的视图,因此显示了“
    未找到…”
    的模板。看起来响应状态不是0,因此它正在查找发送短信视图模板。我假设您没有发送短信的视图,因此显示了“
    未找到…”
    的模板。嘿,Saurav,感谢您的回复。你能和我分享一下代码吗?我已经添加了else语句,但是短信似乎仍然没有通过。嘿,我终于成功了。谢谢你给我指出了正确的方向。嘿,索拉夫,谢谢你的回应。你能和我分享一下代码吗?我已经添加了else语句,但是短信似乎仍然没有通过。嘿,我终于成功了。谢谢你给我指明了正确的方向。
    Started POST "/pages/send_sms" for 127.0.0.1 at 2017-10-08 00:35:45 +0400
    Processing by PagesController#send_sms as HTML
      Parameters: {"utf8"=>"✓", "authenticity_token"=>"zPj5PcZrD+uNYxvvfDio8B5uNWitg0vMw+3Vm8KbvQumbNWzsgN4sBJDKsi2srx0rSatiOISegWHQFE860
    JxcA==", "number"=>"+971585959698", "commit"=>"Send"}
    No template found for PagesController#send_sms, rendering head :no_content
    Completed 204 No Content in 803ms