1

私は最近、既存の Rails 3 アプリケーションを標準バージョンとプレミアム バージョンに分離する作業を任されました。プレミアム バージョンには、既存のすべての機能が含まれており、新しいレイアウトと新しい機能が追加されています。理想的には、現在の URL の前に「premium.somesite.com」などのサブドメインを付けて、Premuim ユーザーにこのサイトにアクセスしてもらいたいです。変更したくない Web サイトの標準バージョンであり、デフォルトの URL で引き続きアクセスできます。 .

可能であれば、既存のビューとコントローラーにいくつかのロジックを追加して、サブドメインが使用されているかどうかに応じてリクエストがどのように処理されるかを判断したいと思います。

Rails 3でRailcast サブドメインをたどってみましたが、彼はブログ モデルとデータベース属性のコンテキストでサブドメインを使用しています。これはサブドメインでも可能ですか? どうすれば始められますか?


私が試したこと:

乗客が使用する apache httpd.conf ファイルに追加の VirtualHost を追加しました。

<VirtualHost *:80>
  ServerName premium.mydomain.com
  DocumentRoot /somewhere/../myapp
  <Directory /somewhere/public>
    Allow from all
    Options -Multiviews
  </Directory>
</VirtualHost>

私のroutes.rbに以下を追加しました

class PremiumSubdomain
  def self.matches?(request)
    request.subdomain == "premium"
  end
end

MyApp::Application.routes.draw do    
  constraints(PremiumSubdomain) do    
    #all of my routes...    
  end    
end

何が起こるのですか:

プレミアム サブドメインを使用してサイトに移動しようとすると、ドメインが見つかりません。route.rb に制約を追加すると、アプリケーションの残りの部分が既定の URL に何かをレンダリングできなくなります。

4

1 に答える 1

0

そのため、apache ですべてを適切に構成しましたが、DNS サーバーにサードパーティを使用していたため、サブドメインのレコードを追加するだけで、他のすべては桃色でした。

于 2012-11-02T22:22:01.000 に答える