我在我的 rails 3.1.3 应用程序中使用 Twilio,并且我已经基本设置好了所有内容,即根据响应为视图提供 sms 和 xml 构建器的控制器。我唯一不知道的是如何跟踪对话。Twilio 文档不适合使用 PHP 以外的任何东西来执行此操作。我曾尝试使用 Rails 会话哈希 session[:variable],但它似乎并没有保存会话,因为我尝试重定向并打印它并没有得到任何结果。下面是控制器的代码。
定义接收 # 检查会话变量并在必要时重定向 @sms_state = 会话[:sms_state] 如果@sms_state == '确认' 重定向到“确认” 结尾 如果条件 @sms_state = '确认' 会话[:sms_state] = @sms_state 渲染 :action => "view.xml.builder", :layout => false 别的 @sms_state = '新状态' 会话[:sms_state] = @sms_state 渲染 :action => "error.xml.builder", :layout => false 结尾 结尾 # 用户处理完第一部分后应该调用的方法 定义确认 如果条件 @sms_state = session[:sms_state] = nil 渲染 :action => "confirm_view.xml.builder", :layout => false 别的 @sms_state = '确认' 会话[:sms_state] = @sms_state 渲染 :action => "error.xml.builder", :layout => false 结尾 结尾
我现在已经建立了一个数据库表来根据联系我的应用程序的电话号码来跟踪当前的对话状态。现在我唯一需要做的就是为这个会话设置一个过期时间,就像会话或 cookie 一样。我不确定如何做到这一点,或者它是否可能。