Rails 3路由 - 使用set string添加所有url路径

时间:2013-03-27 00:55:34

标签: ruby-on-rails-3 routes

我被要求更改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,但客户端非常具体想要以上述格式使用网址。

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

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

1 个答案:

答案 0 :(得分:1)

一个选项是将所有现有路线包裹在:namespace :appname do ... end中,如下所示:

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

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