Ruby 如何从后端类的前端内部访问params[:name]

Ruby 如何从后端类的前端内部访问params[:name],ruby,sinatra,Ruby,Sinatra,如何访问我的会话[:name],该会话位于我的Sinatra应用程序的前端,在后端的类中?我想这样做,这样我就可以将我的所有消息(人们都在说)存储在一个类中,以便能够快速更改我的后端消息,这样我就可以在需要时更改它,而不必在整个前端进行转换,在那里对它们进行编码 以下是前端部分: post '/startgames' do play = params[:playgame] session[:name] = params[:name] session[:age] = params[:

如何访问我的
会话[:name]
,该会话位于我的Sinatra应用程序的前端,在后端的类中?我想这样做,这样我就可以将我的所有消息(人们都在说)存储在一个类中,以便能够快速更改我的后端消息,这样我就可以在需要时更改它,而不必在整个前端进行转换,在那里对它们进行编码

以下是前端部分:

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,所以测试:)

谢谢Dave,你的建议让我走上了正确的方向。这就是我所做的,以防它会帮助其他人。此部分用于后端

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
post'/startgames'do
play=params[:玩游戏]
会话[:名称]=参数[:名称]
会话[:年龄]=参数[:年龄].到
名称=会话[:名称]
如果玩==“乔的冒险游戏”&&session[:age]>17
erb:trippygame1,:locals=>{:message1=>message.start\u joe(姓名),
:message2=>“有一天,{session[:name]}坐在那里抽烟,有人敲门。”,
:message3=>“你站起来回答吗?”}
elsif play==“Joe's Trippy冒险游戏”&&session[:年龄]<17岁
erb-erb:safari1,:locals=>{:message1=>message.too_-young(姓名),:age=>“”
elsif play==“Jade的狩猎探险游戏”&&session[:age]<17
erb:safari1,:locals=>{:message1=>message.start\u jade(姓名),:age=>“”
else play==“Jade的狩猎探险游戏”&&session[:age]>17
erb:safari1,:locals=>{:age=>message.too_old(name),
:message1=>message.start\u jade(名称)}
结束
结束

现在仍在进行中,但感谢您的建议,现在我不知道为什么我没有想到这一点

听起来您需要的只是参数化消息,例如搜索“sinatra i18n”或滚动您自己的不太复杂的解决方案,例如,您的消息将是模板,而不是简单的字符串,或将参数传递给的方法。