【发布时间】:2016-03-23 18:35:36
【问题描述】:
在下面的代码中,当 #call 方法执行时,它将调用重定向到 #connect 方法以播放音频,然后 #connect 方法重定向到 #menu_selection 一切都中断了。我在 heroku 日志中得到的错误是会话为 nil 或已定义。
我不明白的是我已经在第一个方法#call 中使用了 session[:user_id]。为什么在#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
在#menu_selection 方法中出现错误:未定义的局部变量或方法“会话”
它在我定义“列表”变量的第一行。
我以前从未遇到过这种问题。如果有人知道发生了什么,我将不胜感激。
我尝试将第一个@list 变量定义为方法#call 之外的类变量,但它给了我现在得到的相同错误。我还尝试在#call 方法中将其设为类变量以尝试在#menu_selection 方法中使用它,但出现“@@list is undefined”错误。
【问题讨论】:
标签: ruby-on-rails session ruby-on-rails-4 controller twilio