0

想知道为什么我的路线不适用于rails guide中描述的内容。http://admin.foo.dev:3000/带我去root_path,而不是admin::pages#home

第一种方法虽然有效。取自Railscast

# WORKS!

match '', to: 'pages#home', constraints: lambda { |r| r.subdomain.present? && r.subdomain != 'www' }

# does NOT work!

namespace :admin do
  constraints :subdomain => "admin" do
    root :to => 'pages#home'
  end
end

我已经在/etc/hosts. 看起来像:

127.0.0.1 localhost
127.0.0.1 api.foo.dev admin.foo.dev foo.dev www.foo.dev
4

1 回答 1

2

由于您的路线位于命名空间内,因此带您前往的正确页面admin::pages#home将是http://admin.foo.dev:3000/admin/. 删除命名空间以正确连接。

一般来说,如果您对正在生成哪些路线以及如何到达这些路线感到困惑,请使用rake routes. 有关命名空间路由的更多信息(以及在这种情况下您可能不想使用命名空间的原因),请查看Rails 路由指南

于 2012-12-27T05:05:34.863 回答