Ruby 并不是所有的方法都被称为Sinatra

Ruby 并不是所有的方法都被称为Sinatra,ruby,routing,sinatra,twilio,redirect,Ruby,Routing,Sinatra,Twilio,Redirect,我正在使用Sinatra和Twilio api构建一个Ruby应用程序 通过拨打我指定的Twilio号码,用户会被提示录制音频消息。一旦该消息被重新记录,用户将被重定向到以下路由,如果用户拨打1(或任何其他),他们将被重定向到他们的MSG馈送,但如果用户拨打2,则用户的消息将被删除,并应被重定向到他们可以记录新消息的路由 这是我的路线: get '/playback/handle-recording/:recordingSID' do if params['Digits'] = '2'

我正在使用Sinatra和Twilio api构建一个Ruby应用程序

通过拨打我指定的Twilio号码,用户会被提示录制音频消息。一旦该消息被重新记录,用户将被重定向到以下路由,如果用户拨打1(或任何其他),他们将被重定向到他们的MSG馈送,但如果用户拨打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方法。

您确定他们真的进入了
else
?Ruby不会只是随机地不执行其中的内容,没有充分的理由

您可能需要注意的一点是,您正在赋值,而不是比较
params
值:

if params['Digits'] = '2'
您将要执行以下操作:

if params['Digits'] == '2'
这肯定会导致if语句中出现一些奇怪的行为,例如总是执行一条路径