2

mydomain.com という名前のドメインを持つ Rails 3.1 マルチテナンシー アプリがあります。これで、次のルートを作成したいと思いますが、スタックし続けます

www.mydomain.com および mydomain.com のデフォルト ルートは、home と呼ばれるコントローラーに移動する必要があります。または、*.mydomain.com (www を除く) の同様のデフォルト ルートは、*.mydomain.com のセッション/新しいルートのデフォルト ルートに移動する必要があります ( wwwを除く)ログインすると、ダッシュボードコントローラーまたは類似のページに移動します

誰でもこれを達成する方法を手伝ってもらえますか?

4

1 に答える 1

3

これは、探しているものとかなり似ています: http://maxresponsemedia.com/rails/setting-up-user-subdomains-in-rails-3/

編集

リンクは現在無効になっているようです (これが、単なるリンク以外のものを投稿する必要がある理由です!) が、WayBackMachine でそれを見つけることができました。これが持っていたコード例です。

まず、サブドメインとルート ドメインに対していくつかの制約を定義します。

# /lib/domains.rb

class Subdomain
  def self.matches?(request)
    request.subdomain.present? && request.subdomain != "www" && request.subdomain != ""
  end
end

class RootDomain
  @subdomains = ["www"]

  def self.matches?(request)
    @subdomains.include?(request.subdomain) || request.subdomain.blank?
  end
end

次に、routes.rb で、サブドメインを Web サイト コントローラーに転送しますが、メイン サイトに関連するドメインへの要求は、アプリ用に構成された静的ページに送信されます。

# config/routes.rb
# a bunch of other routes...

# requiring the /lib/domains.rb file we created
require 'domains'

constraints(Subdomain) do
  match '/' => 'websites#show'
end

constraints(RootDomain) do
  match '/contact_us', :to => 'static_pages#contact'
  match '/about', :to => 'static_pages#about'
  match '/help', :to => 'static_pages#help'
  match '/news', :to => 'static_pages#news'
  match '/admin', :to => 'admin#index'
end
于 2012-12-05T07:03:11.980 に答える