rails 3.2将子域链接到控制器?

时间:2012-04-20 10:18:12

标签: ruby-on-rails saas subdomain

更新:重写了一下问题。尝试路由我的子域名,如下所示

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

使用

  • Rails 3.2
  • 设计

没有尝试过几篇教程博客帖子,有谁知道这方面的工作实例? 真的坚持这个:(

这是我现在的路线:

 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 个答案:

答案 0 :(得分:2)

我的RailsApps project提供了一个完整的示例应用,展示了如何使用子域:

Rails Tutorial for Subdomains with Devise

你看过那个吗?

<强>配置/ 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

答案 1 :(得分:1)

好的帮助设法使其正常工作

应该做的事:

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