【问题标题】:Padrino multilpe url for one route code一个路线代码的帕德里诺多个网址
【发布时间】:2018-11-09 01:42:54
【问题描述】:

我想用一个路由代码处理多个 URL。

我正在尝试这样的事情:

get '/company', '/about' do 
  ...
end

但它不起作用。对于/company,我得到200,但对于/about,我得到404。

有这样的方法吗?

【问题讨论】:

    标签: ruby sinatra padrino


    【解决方案1】:

    路由文件是一个 ruby​​ 文件。你可以通过一个简单的循环来做到这一点:

    ['/company', '/about'].each do |route|
      get route do
        # ...
      end
    end
    

    来自the source code

    def get(path, *args, &block)
      conditions = @conditions.dup
      route('GET', path, *args, &block)
    
      @conditions = conditions
      route('HEAD', path, *args, &block)
    end
    

    你可以看到get方法只需要一个路径。

    【讨论】:

    • 太好了,谢谢,我正在尝试 sinatra 风格,但这也是可能的。谢谢
    • 从源代码看来,路径也可以是正则表达式,所以get %r{/(company|about)}也可以工作(没试过)。
    • (也没有尝试过,但是)不要忘记用^ ... $ 锚定正则表达式!否则你可能会劫持各种其他路由,比如/not/about/the/company
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-07-01
    • 2013-07-05
    • 2015-02-23
    • 2014-03-01
    • 1970-01-01
    相关资源
    最近更新 更多