ruby on rails -子域路由似乎不工作



想知道为什么我的路由不能与rails指南中描述的一起工作。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

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

一般来说,如果你对生成的路由以及如何到达它们感到困惑,请使用rake routes。有关名称空间路由的更多信息(以及为什么在这种情况下不希望使用名称空间),请查看Rails路由指南。

相关内容

  • 没有找到相关文章

最新更新