【发布时间】:2014-10-17 14:27:02
【问题描述】:
我正在使用 Sinatra 和 Twilio api 构建一个 Ruby 应用程序。
通过给我分配的 Twilio 号码的电话,系统会提示用户录制音频消息。记录该消息后,用户将被重定向到以下路由,如果用户拨打 1(或其他任何内容),他们应该被重定向到他们的 msgs 提要,但如果用户拨打 2,则用户的消息将被删除并且应该被重定向到他们可以记录新消息的路线。
这是我的路线:
get '/playback/handle-recording/:recordingSID' do
if params['Digits'] = '2'
delete(params['recordingSID'])
deletedMsg = "Audio deleted."
getRecord(deletedMsg)
else
getFeed()
end
end
辅助方法:
helpers do
def delete(recording)
recording = client().account.recordings.get(recording)
recording.delete
end
def getFeed()
redirect '/feed'
end
def getRecord(appendMsg)
Twilio::TwiML::Response.new do |response|
if appendMsg
response.Say appendMsg
end
response.Say "Record your message."
response.Record :maxLength => '5', :trim => "trim-silence", :playBeep => "true", :action => '/playback', :method => 'get'
end.text
end
end
我的问题是,无论用户是使用“if”还是“else”第一种方法,getRecord(deletedMsg) 都会被调用,而不是 getFeed()。
我怎样才能修复我的路线,以便如果用户登陆else,他会被重定向到他的提要页面而不是 getRecords 方法。
【问题讨论】:
标签: ruby routing sinatra twilio redirect