0

私のルートがrails guideで説明されているもので機能しないのはなぜだろうか。ではなくhttp://admin.foo.dev:3000/に連れて行ってくれます。root_pathadmin::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#homehttp://admin.foo.dev:3000/admin/. 名前空間を削除して正しく接続してください。

一般に、どのルートが生成され、どのようにそれらに到達するかについて混乱したことがある場合は、 を使用してくださいrake routes。名前空間ルートの詳細 (および、このような状況で名前空間を使用したくない理由) については、Rails ルーティング ガイドを参照してください。

于 2012-12-27T05:05:34.863 に答える