2012-04-26 29 views
0

我在使用Sinatra和Rack的Facebook Canvas應用程序中使用會話。使用Sinatra for Facebook Canvas應用程序的未定義方法「會話」

發生在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' 

的問題肯定是有機架,因爲當我運行我的應用程序如下:

紅寶石application.rb中-p 3000

它不顯示任何錯誤。我已經嘗試安裝機架版本:1.3.6和1.4.1,但錯誤仍然存​​在。

我也用下面的代碼,而不是enable :sessions

use Rack::Session::Cookie, :key => 'rack.session', 
          :domain => 'static.ak.facebook.com', 
          :path => '/', 
          :secret => 'change_me' 

我需要升級/降級降低機架的版本,或者添加一些代碼塊,使這件事情的工作試過嗎?

編輯

還隔着這個問題,我有一個問題在Facebook的帆布整合我的申請其主要原因是config.ru加入這一行解決來臨前:

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

回答

1

使用env['rack.session']代替從Facebook收到的POST請求中的session[]解決了此問題。希望這有助於解決此類問題

雖然它因爲沒有完全解決併發症,現在在同一職位的回調顯示添加redirect to代碼:undefined method secure?錯誤。

我還沒有能夠解決這個問題,雖然我所做的是避免重定向的東西,而是添加一個功能控制器來處理不同的請求。

相關問題