在rails 4中覆盖某个子域的根路由

时间:2013-12-26 08:24:27

标签: ruby-on-rails routes constraints

如果子域名等于“www”或只是“”,我会覆盖我的root :to => redirect("/projects")路由。这意味着如果子域名为“www”或“”应用程序应使用我的website#index控制器/操作。

目前我得到了这个设置:

class Subdomain
  def self.match(r)
    r.subdomain == "www" || r.subdomain == ""
  end
end

.....

# website
scope :constraints => lambda { |request| Subdomain.match(request) } do
  get '/' => 'website#index'
  get "/help" => "website#help", as: "help"
  get "/about" => "website#about", as: "about"
  get "/signup" => "website#signup", as: "signup"
  # post "/signup" => "website#signup_account"
end

root :to => redirect("/projects")

如果我访问www.satisfy.dev/help或satisf.dev/help,一切正常。如果我访问www.satisfy.dev/或satisfy.dev/,则root_path(/ projects)正在使用中。我认为get '/' => 'website#index'应该比root_path更重要,因为它位于root_path之上。

希望有人对我有所暗示!

1 个答案:

答案 0 :(得分:0)

我尝试将路线视为"得到"要求并取得更大成功。

见这里: Multiple 'root to' routes in rails 4.0