想知道为什么我的路线无法使用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
答案 0 :(得分:2)
由于您的路线位于命名空间内,因此将您带到admin::pages#home
的正确网页将为http://admin.foo.dev:3000/admin/
。删除命名空间以正确连接。
一般情况下,如果您对生成的路线以及如何到达这些路线感到困惑,请使用rake routes
。有关命名空间路由的更多信息(以及为什么您可能不希望在这种情况下使用命名空间),请查看the Rails routing guide。