2012-05-07 22 views
1

app.rb:101基本的なルビー/シナトラ:未定義の変数 'セッションの

app.rb:3:in `<top (required)>': undefined local variable or method `session' for main:Object (NameError) 

この:

require 'sinatra' 

class MyApp < Sinatra::Application 
    enable :sessions 

    if session[:user_id].nil? then 
     erb :login 
    end 
end 

require_relative 'routes/init.rb' 

config.ru:shotgun config.ruまたはthin start -R config.ru収量を実行

require './app' 
run MyApp 

非常に101ishです。何がありますか?

答えて

2

私は、あなたがgetブロックまたはそれに類するものの中にそのコードを持っていないことが問題だと思います。基本的には、sinatraは要求の文脈でsessionオブジェクトについてしか知りません。このようなものは、ルートURLとして機能します。

require 'sinatra' 

class MyApp < Sinatra::Application 
    enable :sessions 

    get '/' do 
    if session[:user_id].nil? then 
     erb :login 
    end 
    end 
end