需要'To'电话号码 - Twilio- Rails 4



我是Rails的新手,这是我第一次在应用程序中实现API。我正在创建一个应用程序,允许用户使用twilio安排短信(SMS)。我正在尝试传入"数字",以便用户可以输入数字。当我硬编码一个号码时,我已经让应用程序工作了,但当我试图输入一个参数时,我会得到"需要一个‘收件人’电话号码"。

这是控制器

    class TextMessagesController < ApplicationController
      def index 
        @message = TextMessage.all
      end
      def new
        @message = TextMessage.new
      end
      def create 
        @active = 'messages'
        @message = TextMessage.send_sms(params[:number], params[:message])
        if @message.save
          flash[:success] = "Text Message Sent."
          redirect_to message_path
        else
          render 'home'
        end
      end
     def text_message_params
       params.require(:text_messages).permit(:number, :message)
     end
  end

这是型号

class TextMessage < ActiveRecord::Base
belongs_to :user
validates :message, length: { maximum: 160 }, presence: true
def self.send_sms(number, message)
  twilio_account_sid = 'XXXXXX'
  twilio_auth_token  = 'XXXXXX'
  twilio_number      = 'XXXXXX'
@client = Twilio::REST::Client.new twilio_account_sid, twilio_auth_token
message = @client.account.sms.messages.create(
  :from => "+1#{twilio_number}",
  :to => "#{number}",
  :body => "#{message}"
  )
 end

结束

有人知道我在哪里犯错吗?

我的猜测是params[:number]为空:

@message = TextMessage.send_sms(params[:number], params[:message])

也许应该是params[:text_messages][:number]?这是基于你的text_message_params方法(你没有利用它)。

@message = TextMessage.send_sms(params[:text_messages][:number], params[:text_messages][:message])

你说得非常对。以下是我的想法。谢谢你的帮助!

    class TextMessagesController < ApplicationController
      def index 
        @message = TextMessage.all
      end
      def new
        @message = TextMessage.new
      end
      def create 
        @active = 'messages'
        @message = TextMessage.send_sms(text_message_params[:number], text_message_params[:message])
        if @message
          flash[:success] = "Text Message Sent."
          redirect_to text_messages_path
        else
          render 'home'
        end
     end
     def text_message_params
       params.require(:text_message).permit(:number, :message)
     end
   end

最新更新