代码之家  ›  专栏  ›  技术社区  ›  Ethan Turkeltaub

带Sinatra的多块参数

  •  4
  • Ethan Turkeltaub  · 技术社区  · 14 年前

    我想让Sinatra得到工作请求:

    get '/:year/:month/:day/:slug' do
    
    end
    

    我知道你可以得到一个参数来处理块参数:

    get '/:param' do |param|
      "Here it is: #{param}."
    end
    

    但是如何在第一个代码块中使用多个块参数呢?我乐于接受其他方法。

    2 回复  |  直到 14 年前
        1
  •  2
  •   Simone Carletti    14 年前

    多个占位符存储在 params 作为散列。

    # Request to /2009/10/20/post.html
    
    get '/:year/:month/:day/:slug' do
      params[:year]  # => 2009
      params[:month] # => 10
      params[:day]   # => 20
      params[:post]  # => post.html
    end
    
        2
  •  0
  •   zetetic    14 年前

    原谅我对Sinatra的无知,但这套命名参数不应该像rails一样 map.connect ?:

    get '/:year/:month/:day/:slug
    

    现在参数应该可以在 params 搞砸:

    params = { :year => "foo", :month => "bar", :day => "baz", :slug => "etc" }
    
    推荐文章