2015-12-21 75 views
0

如何訪問位於我的Sinatra應用程序前端的我的session[:name],該課程位於I類在後端?我想這樣做,這樣我就可以在課堂中存儲我所有的信息(人們都在說),以便能夠快速更改我的後端消息,以便我可以在不需要轉換整個前端的情況下更改它,在那裏編碼。如何從後端的課程前端訪問params [:name]

這裏是前端部分:

post '/startgames' do 

    play = params[:playgame] 
    session[:name] = params[:name] 
    session[:age] = params[:age].to_i 

    if play == "Joe's Trippy Adventure Game" && session[:age] > 17 
    erb :trippygame1, :locals => {:message1 => "Great #{session[:name]} you are old enough to Play Joe's Trippy Adventure Game.", 
         :message2 => "One day #{session[:name]} is sitting around Smoking a bong when someone knocks on the door.", 
         :message3 => "Do you get up and answer it?"} 
    elsif play == "Joe's Trippy Adventure Game" && session[:age] < 17 
    erb  erb :safari1, :locals => {:message1 => "#{session[:name]} You are to young to play Joe's Trippy game how about a nice Lepoard adventure game?", :age => ""} 
    elsif play == "Jade's Safari Adventure Game" && session[:age] < 17 
    erb :safari1, :locals => {:message1 => "#{session[:name]} Chose to play Jade's Safari Adventure Game.", :age =>""} 
    else play == "Jade's Safari Adventure Game" && session[:age] > 17 
    erb :safari1, :locals => {:age => "Hey man Aren't You a little old to play this type of game?", 
        :message1 => "#{session[:name]} Chose to play Jade's Safari Adventure Game."} 
    end 
end 

這裏是後端部分:

class Start_messages 


    def welcome 
    "Welcome To Joe's Games." 
    end 

    def name_age 
    "Enter your name & age to start." 
    end 

    def to_start_jade 
    "So you wanna play Jade's Safari Adventure game ?" 
    end 


    def to_start_joe 
    "If you want to play Joe's Trippy Adventure Game" 
    end 

    def start_joe 
     "Great #{session[:name]} you are old enough to Play Joe's Trippy Adventure Game." 
    end 

end 

我真的希望能夠保留所有的信息在一個類中,而不是硬編碼在前端。另外,它會更容易在我的後端進行測試,因爲我還沒有開始測試前端的東西呢...我學習TDD所以測試測試測試:)

+2

聽起來像是你需要的是參數化的消息,如建議,搜索「sinatra i18n」或者推出你自己較簡單的解決方案,例如,而不是簡單的字符串,你的消息將會是模板,或者你傳遞params的方法。 –

回答

0

謝謝戴夫什麼你建議讓我進入正確的方向。這就是我所做的,它會幫助別人。這部分用於後端

def start_joe(name) 
    "Great #{name} you are old enough to Play Joe's Trippy Adventure Game." 
end 

def start_jade(name) 
    "#{name} Chose to play Jade's Safari Adventure Game." 
end 

def too_young(name) 
    "#{name} You are too young to play Joe's Trippy game how about a nice Lepoard adventure game?" 
end 

def too_old(name) 
    "Hey #{name} Aren't You a little old to play this type of game?" 
end 

對於前端。

post '/startgames' do 

play = params[:playgame] 
session[:name] = params[:name] 
session[:age] = params[:age].to_i 
name = session[:name] 
if play == "Joe's Trippy Adventure Game" && session[:age] > 17 
     erb :trippygame1, :locals => {:message1 => message.start_joe(name), 
             :message2 => "One day #{session[:name]} is sitting around Smoking a bong when someone knocks on the door.", 
             :message3 => "Do you get up and answer it?"} 
elsif play == "Joe's Trippy Adventure Game" && session[:age] < 17 
     erb  erb :safari1, :locals => {:message1 => message.too_young(name) , :age => ""} 
elsif play == "Jade's Safari Adventure Game" && session[:age] < 17 
     erb :safari1, :locals => {:message1 => message.start_jade(name), :age =>""} 
else play == "Jade's Safari Adventure Game" && session[:age] > 17 
     erb :safari1, :locals => {:age => message.too_old(name), 
            :message1 => message.start_jade(name)} 
    end 
end 

仍然在進展中的工作,但現在感謝這使得完整意義上的,現在我不知道爲什麼我沒有想到這