2013-06-06 5 views
0

J'ai un contrôleur qui accepte un SMS de Twilio et crée une nouvelle transaction. Mon objectif est que je souhaite envoyer un message texte dont le corps est un numéro, puis accepte le numéro de téléphone pour le faire correspondre à un enregistrement d'employé.Enregistrement Twilio Créer un contrôleur, sans succès

app/controllers/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 

Mais le problème est que lorsque j'envoie un texte, il crée l'enregistrement des transactions, mais crée le champ « employee_id » comme nul. Donc, je ne sais pas si une partie de mon ruby ​​ci-dessous est cassée, mais je crois que: employee_id passe null au nouvel objet et je ne suis pas sûr de ce qui est cassé à ce sujet. Je serais heureux de fournir d'autres éléments de code dont vous auriez besoin ...: Body et: From sont les paramètres des SMS entrants de Twilio. Je me suis assuré que j'ai un employé dans la base de données avec le numéro de téléphone que j'envoie, y compris les variations avec et sans «1». Donc, je suppose qu'il y a quelque chose qui ne va pas avec ma recherche, mais je ne suis pas sûr.

Répondre

0

finissions comme ceci:

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

changement

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

Pour

if employee = Employee.find_by_phone(phone_number) 
    Transaction.create!(item_id: params[:Body], employee_id: employee.id, status: true) 
end 
Questions connexes