2013-06-06 3 views
0

У меня есть контроллер, который принимает SMS от Twilio и создает новую транзакцию. Моя цель состоит в том, что я бы хотел отправить текстовое сообщение с номером в качестве тела, а затем принять номер телефона, чтобы он соответствовал записи сотрудника.Twilio Record Create Controller, Passing Nil Результаты

приложение/контроллеры/twilio_controller.rb

class TwilioController < ApplicationController 

     def process_sms 
     @city = params[:FromCity].capitalize 
     @state = params[:FromState] 
      render 'process_sms.xml.erb', :content_type => 'text/xml' 
     end 

     def create 
     phone_number = params[:From][/\d+/] 
     employee = Employee.where(phone: phone_number).first 
     if employee 
      @transaction = Transaction.new(:item_id => params[:Body], :employee_id => employee, :status => true) 
      @transaction.save 
     end 
     end 

    end 

Но проблема в том, что, когда я отправить текст, он создает запись транзакции, но и создает поле «EMPLOYEE_ID» как нулевой. Поэтому я не знаю, нарушена ли часть моего рубина ниже, но я верю, что: employee_id передает значение null новому объекту, и я не уверен, что с этим связано. Я был бы рад предоставить любые другие фрагменты кода, которые вам нужны ...: Body и: From - это параметры входящего SMS Twilio. Я убедился, что у меня есть сотрудник в базе данных с номером телефона, который я отправляю, включая варианты с и без предшествующего «1». Поэтому я предполагаю, что с моим поиском что-то не так, но я просто не уверен.

ответ

0

Законченное делает это так:

@transaction = Transaction.new(:item_id => item[:id], :employee_id => employee[:id], :status => item_status) 
0

Изменить

employee = Employee.where(phone: phone_number).first 
if employee 
    @transaction = Transaction.new(:item_id => params[:Body], :employee_id => employee, :status => true) 
    @transaction.save 
end 

Для

if employee = Employee.find_by_phone(phone_number) 
    Transaction.create!(item_id: params[:Body], employee_id: employee.id, status: true) 
end 
Смежные вопросы