0

我被要求更改 Rails 项目上的路由,以便路由只会响应应用程序名称(或其他任意字符串)是域名后的第一个字符串的请求,例如

www.thething.com/appname/users/sign_in代替www.thething.com/users/sign_in

www.thething.com/appname代替www.thething.com

www.thething.com/appname/search代替www.thething.com/search

我建议改用子域appname.thething.com,但客户端非常明确地希望 URL 采用上述格式。

www.thething.com将是一个启动页面,其中包含指向 的链接www.thething.com/appname,目的是在将来添加其他应用程序/页面,并使用新文件夹名称。

是否有一种简单的方法来修改路由文件,以便所有路由都将在.../appname所有资源和路由之前添加,同时在域之后?

4

1 回答 1

1

一种选择是将所有现有路由包装在:namespace :appname do...end中,如下所示:

# config/routes.rb
Appname::Application.routes.draw do
  namespace :appname do
    # existing routes go here
  end
end

我不确定这是否是最优雅的解决方案,但它会优先/appname于所有路线。

于 2013-03-27T01:10:09.387 回答