#callメソッドを実行すると、#connectメソッドの呼び出しがオーディオを再生するようにリダイレクトされ、#connectメソッドが#menu_selectionにリダイレクトされ、すべてが壊れます。私がherokuログに記録するエラーは、セッションがnilまたは定義されているということです。コントローラでセッションメソッドを2回呼び出すことはできません
私が理解していないことは、最初のメソッド#callでsession [:user_id]を使用していることです。なぜ#menu_selectionメソッドで定義されていませんか?未定義のローカル変数やメソッド `セッション」私は、『リスト』変数を定義しています最初の行に
その:#menu_selection方法で
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
私はエラーを取得します。
これまでにこのような問題は発生しませんでした。誰が何が起こっているのか分かっていれば、私はあなたの助けに感謝します。
最初の@list変数をメソッド#callの外でクラス変数として定義しようとしましたが、これは私が今取得するのと同じエラーを返します。私は#menu_selectionメソッドでそれを使用しようとする#callメソッド内のクラス変数にしようとしましたが、 "@@リストは未定義です"というエラーが出ます。
Philnash、もう一度ご協力いただきありがとうございます。これはあなたが私のために質問に答える2回目です。ほんとうにありがとう。私はあなたが提案したとおりに正確に試してみました。 :D –
問題ありません!私はちょうど助けるためにここにあります:) – philnash
私はそれを感謝します:)あなたは、電話を受ける人が拾われない場合、私は電話を切ることができる方法を知っていますか?それとも可能ですか?今のところそれが原因ですが、回答がなければ音声メッセージが残ります。 mp3の録音をメッセージとして残します。 –