2011-12-29 6 views
3

コントローラを使用してコンテンツを配信するpartnersサブドメインがあります。wwwサブドメインへのリンクを作成するためにレールを強制するには?

URLは似ています:http://partners.example.com/...

は私がルートwwwサブドメインへのリンクを返すために、すべての_path_url機能を強制することができます方法はありますか?私のリンクが参照しているリソースは、サブドメイン自体ではなく、ルートドメイン上にあるので(重複したものを提供したくない)

答えて

7

は、それがで行うことができます。

+3

'root_url(サブドメイン: 'www')'は、サブドメインのホームページにアクセスする必要がある場合にも機能します。 – scarver2

2

これは、ここに私の答えのようになります。How to automatically set all links to nofollow in Rails

の代わりに(私の他の答えのように)無次、あなたの可能性:メソッドwith_subdomain

def link_to(name, options = {}, html_options = {}) 
    html_options.merge!(:host => with_subdomain("www")) 
    super(name, options, html_options) 
end 

def with_subdomain(subdomain) 
    subdomain = (subdomain || "") 
    subdomain += "." unless subdomain.empty? 
    [subdomain, request.domain, request.port_string].join 
end 

がありhttp://railscasts.com/episodes/221-subdomains-in-rails-3

0

からですここにこの主題の優れたレールです:

http://railscasts.com/episodes/221-subdomains-in-rails-3

あなたの質問はあまりにも漠然としていて、コントローラのリクエストの実際のコードスニペットはありませんでした。

これはあなたの答えを得るはずです。あなたのニーズに合わせてカスタマイズしてください。

2

私はあなたのメインホストを含​​めるようにdefault_url_optionsを設定したい:あなたはlink_toに渡す

ActionController::Base.default_url_options = {:host => '...'} 

オプションは、名前が示すように、これはデフォルト値を提供することができ、これらを無効にしますが。ヘルパーresource_pathはsubdmainキーを受け付けない、

resource_url(:subdomain => 'www') 

しかし:Railsの3.1に

関連する問題