aufgerufen werden. Wenn die #call -Methode ausgeführt wird, leitet sie den Aufruf an die Methode #connect um, um ein Audio abzuspielen, dann leitet die Methode #connect zu #menu_selection um, wo alles bricht . Der Fehler, den ich in den Heroku-Protokollen erhalte, ist, dass die Sitzungen null oder definiert sind.Sitzungsmethode kann nicht 2 Mal im Controller
Was ich nicht verstehe, ist, dass ich bereits session [: user_id] in der ersten Methode #call verwende. Warum ist es in der Methode #menu_selection nicht definiert?
def call
@list = User.find_by(id: session[:user_id]).contact_lists.find_by(id: session[:last_contact_list_id])
@contacts = @list.contacts
@client = Twilio::REST::Client.new(@@account_sid, @@auth_token)
@contacts.each do |contact|
@call = @client.account.calls.create(
:from => '+18056234397', # From your Twilio number
:to => '+1' + contact.phone , # To any number
:url => root_url + "connect"
)
end
redirect_to root_path
end
def connect
response = Twilio::TwiML::Response.new do |r|
r.Play 'https://clyp.it/l1qz52x5.mp3'
r.Gather numDigits: '1', action: menu_path do |g|
g.Play 'https://a.clyp.it/2mue3ocn.mp3'
end
end
render :xml => response.to_xml
end
def menu_selection
list = User.find_by(id: session[:user_id]).contact_lists.find_by(id: session[:last_contact_list_id])
user_selection = params[:Digits]
@client = Twilio::REST::Client.new(@@account_sid, @@auth_token)
case user_selection
when "1"
@output = "say something."
twiml_say(@output, true)
when "2"
twiml_dial("+1805XXXXX")
when "3"
@output = "Bye Bye..."
twiml_say(@output, true)
end
end
Im #menu_selection Methode erhalte ich den Fehler: nicht definiert lokale Variable oder Methode `Session
Die in der ersten Zeile, wo ich die‚Liste‘Variable bin definieren.
Ich hatte nie zuvor diese Art von Problem. Wenn jemand weiß, was los ist, würde ich Ihre Hilfe zu schätzen wissen.
Ich versuchte, die erste Variable @list als eine Klassenvariable außerhalb der Methode #call zu definieren, aber es gibt mir den gleichen Fehler, den ich jetzt bekomme. Ich habe auch versucht, es zu einer Klassenvariable innerhalb der #call-Methode zu machen, um es in #menu_selection-Methode zu verwenden, aber ich erhalte einen "@@ list is undefined" -Fehler.
Philnash, nochmals vielen Dank für Ihre Hilfe. Dies ist das zweite Mal, dass Sie eine Frage für mich beantworten. Ich schätze es sehr. Ich habe genau das versucht, was Sie vorgeschlagen haben, und es hat funktioniert. : D –
Kein Problem! Ich bin nur hier, um zu helfen :) – philnash
Ich weiß es zu schätzen :) Weißt du, wie ich den Anruf auflegen könnte, wenn die Person, die den Anruf empfängt, nicht abholt? oder ist es möglich? Denn gerade jetzt, wie es ist, hinterlässt es eine Sprachnachricht, wenn sie nicht antworten. Es hinterlässt die mp3-Aufnahme als Nachricht. –