Я использую Twilio в своем приложении rails 3.1.3, и у меня все в основном настроено, то есть контроллер для сборщиков sms и xml для представлений в зависимости от ответа. Единственное, что я не могу понять, это как следить за разговором. Документы Twilio довольно плохи для того, чтобы использовать для этого что-либо кроме PHP. Я попытался использовать хэш сеанса Rails, session [: variable], но, похоже, он не сохраняет сеанс, так как я попытался перенаправить и распечатать его и ничего не получил. Ниже приведен код контроллера.
def receive
# Check for session variable and redirect if necessary
@sms_state = session[:sms_state]
if @sms_state == 'confirmation'
redirect_to 'confirm'
end
if condition
@sms_state = 'confirmation'
session[:sms_state] = @sms_state
render :action => "view.xml.builder", :layout => false
else
@sms_state = 'new_state'
session[:sms_state] = @sms_state
render :action => "error.xml.builder", :layout => false
end
end
# method that should be called after user deals with first part
def confirm
if condition
@sms_state = session[:sms_state] = nil
render :action => "confirm_view.xml.builder", :layout => false
else
@sms_state = 'confirmation'
session[:sms_state] = @sms_state
render :action => "error.xml.builder", :layout => false
end
end
Я настроил таблицу базы данных для отслеживания текущего состояния разговора в зависимости от номера телефона, связавшегося с моим приложением. Единственное, что мне сейчас нужно сделать, это установить срок действия этого разговора, как сеанс или cookie. Я не уверен, как это сделать или если это вообще возможно.