2010-11-29 3 views
1

のルート:Ruby on Rails:サブドメインがあまりにも強力ですか?これを正しい方法で設定するにはどうすればいいですか?

 match '/' => 'site_admin/admin#index' 


    resources :link_pages 
    resources :services 
    resource :user_session 
    resource :account, :controller => "users" 
    resources :password_resets 
    resources :users 
    resources :addresses 
    resources :info 

    match "/home", :to => 'info#home' 
    match "/register", :to => 'users#new' 

    root :to => 'info#home' 


    match ':controller(/:action(/:id(.:format)))' 

だから私はadmin.lvh.me:3000/に行きました。それはsite_admin/admin#indexに行きました...これは素晴らしいです... しかし、私はサブドメインを離陸し、ちょうどlvh.me:3000/それは同じルートに行く....

どのように私はそれがどこにとどまるために管理者を得るのですか?私のルートファイルのように、私のルートページに行くサブドメインはありませんか?

答えて

0

経路は順番に解析されるので、どのドメインからでも/を要求すると、最初に「一致」/「...」が見つかり、指定したページに移動します。あなたのサブドメインはまったく機能しません。あなたは、サブドメインに基づいてルートをリクエストベースの制約を使用することができます。

http://guides.rubyonrails.org/routing.html#request-based-constraints

0

サブドメインがこれをどのように考慮するかはわかりません。おそらく、ルートの名前空間(http://edgeguides.rubyonrails.org/routing.html#controller-namespaces-and-routing)とサブドメインを混同していますか?それはルートファイルで最初に定義されていますので

match '/' => 'site_admin/admin#index' 

root :to => 'info#home' 

上で選択されています。彼らは表面上同じことです。

0

はい@Coryは正しいです。上記の両方のステートメントは似ており、最初に定義されたルートが毎回考慮されます。あなたが

match '/admin' => 'site_admin/admin#index' 
に管理ルートを変更する場合、それは意味をなさない...何を言う?

またはその他、以下のコードを使用して、あなたは条件付きであなたのURLを決定することができます。

request.subdomains(0).first
はあなたにadminまたはブランクのいずれかを付加価値のサブドメインを提供します。しかし、それはroute.rbファイルの中で最初に定義されたコントローラアクションだけに行きます。

サブドメインを使用してその操作から、管理パネルまたはホームページにリダイレクトする場所を決めることができます。

関連する問題