2012-12-27 73 views
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 

回答

2

由於您的路線是一個命名空間內,這將帶你到admin::pages#home正確的頁面是http://admin.foo.dev:3000/admin/。刪除名稱空間以正確連接。

一般來說,如果您曾經困惑過正在生成的路線以及如何到達它們,請使用rake routes。有關命名空間路線的更多信息(以及爲什麼您可能不希望在這種情況下使用命名空間),請查看the Rails routing guide