2012-04-20 28 views
2

更新:重寫了一下問題。試圖路線我的子域像下面rails 3.2將子域連接到控制器?

  • login.app.ltd
  • user1.app.ltd
  • user2.app.ltd
  • signup.app.ltd

使用

  • Rails 3.2
  • De老虎鉗

要無濟於事嘗試了幾個教程的博客文章,任何人都知道這個工作的例子? 很堅持這個:(

這是我現在的路線:

match '', to: 'frontend#index', constraints: lambda { |r| r.subdomain.present? && (r.subdomain != 'www') } 
    #match '' => 'home#index', :constraints => { :subdomain => 'login' } 


    constraints :subdomain => /^(?!signup\b)(\w+)/ do 
    root :to => "frontend#index" 
    end 

    root :to => "frontend#index" 

回答

2

我的RailsApps project提供了一個完整的示例應用程序showi NG如何使用子域名:

Rails Tutorial for Subdomains with Devise

你看看嗎?

的config/routes.rb中

devise_for :users 
resources :users, :only => :show 
constraints(Subdomain) do 
    match '/' => 'profiles#show' 
end 
root :to => "home#index" 

的lib/subdomain.rb

class Subdomain 
    def self.matches?(request) 
    case request.subdomain 
    when 'www', '', nil 
     false 
    else 
     true 
    end 
    end 
end 
+0

丹尼爾我想我有這是一個項目的IM不再工作目前,也許在不久的將來,我會從頭開始,然後看看你的例子,然後thx。 – Rubytastic 2012-09-07 08:29:20

1

好一些幫助設法得到它的工作

一個人應該:

constraints subdomain: 'login' do 
devise_scope :user do 
    root to: 'sessions#new' 
end