Session 未定义的方法';会议';将Sinatra用于Facebook画布应用程序

Session 未定义的方法';会议';将Sinatra用于Facebook画布应用程序,session,sinatra,rack,Session,Sinatra,Rack,我正在使用Sinatra和Rack在Facebook画布应用程序中使用会话 Facebook画布中出现的错误是: NoMethodError - undefined method `session' for #<Hash:0xa3ed0a0>: /home/apoorv/.rvm/gems/ruby-1.9.2-p320/gems/sinatra-1.3.2/lib/sinatra/base.rb:170:in `session' 我是否需要升级/降级到机架的较低版本,或者

我正在使用Sinatra和Rack在Facebook画布应用程序中使用会话

Facebook画布中出现的错误是:

NoMethodError - undefined method `session' for #<Hash:0xa3ed0a0>:
    /home/apoorv/.rvm/gems/ruby-1.9.2-p320/gems/sinatra-1.3.2/lib/sinatra/base.rb:170:in `session'
我是否需要升级/降级到机架的较低版本,或者添加一些代码以使其正常工作

已编辑

在遇到这个问题之前,我在Facebook画布中集成我的应用程序时遇到了一个问题,通过在config.ru中添加这一行解决了这个问题:

set :protection, :except => [:remote_token, :frame_options] 

在从Facebook收到的POST请求中使用
env['rack.session']
而不是
session[]
,解决了这个问题。希望这有助于解决这些问题

尽管它没有完全解决复杂问题,因为现在在同一个POST回调中添加重定向到代码的
会显示:
未定义的方法安全?
错误

我一直无法解决这个问题,尽管我所做的是避免重定向,而是向控制器添加一个功能来处理不同的请求

set :protection, :except => [:remote_token, :frame_options]