【发布时间】:2018-11-09 01:42:54
【问题描述】:
我想用一个路由代码处理多个 URL。
我正在尝试这样的事情:
get '/company', '/about' do
...
end
但它不起作用。对于/company,我得到200,但对于/about,我得到404。
有这样的方法吗?
【问题讨论】:
我想用一个路由代码处理多个 URL。
我正在尝试这样的事情:
get '/company', '/about' do
...
end
但它不起作用。对于/company,我得到200,但对于/about,我得到404。
有这样的方法吗?
【问题讨论】:
路由文件是一个 ruby 文件。你可以通过一个简单的循环来做到这一点:
['/company', '/about'].each do |route|
get route do
# ...
end
end
def get(path, *args, &block)
conditions = @conditions.dup
route('GET', path, *args, &block)
@conditions = conditions
route('HEAD', path, *args, &block)
end
你可以看到get方法只需要一个路径。
【讨论】:
get %r{/(company|about)}也可以工作(没试过)。
^ ... $ 锚定正则表达式!否则你可能会劫持各种其他路由,比如/not/about/the/company。