有没有办法在Sinatra中保留HTTP GET参数而无需在链接中手动编写它们?

时间:2011-05-08 16:23:24

标签: ruby sinatra haml

我有一个简单的sinatra网页,有多种配色方案。 要更改颜色方案,我只需按以下方式使用简单的get参数:

before do
  color = params[:color]
  if color == 'blue'
    @color = :blue
  elsif color == 'pink'
    @color = :pink
  else
    @color = :orange
  end
end

但是当用户点击网站上的链接时,颜色参数(当然)会消失。 有没有办法保持颜色参数而不执行以下操作? (以haml为单位):

%a{:href => "/?color=#{@color.to_s}"} Home

1 个答案:

答案 0 :(得分:2)

您可以定义一个新的HAML帮助程序(如that repository中所示)并在模板中使用它,就像任何其他帮助程序一样。我认为这是实现这一目标的最便捷方式。