0

Railsのサブドメインを数日間調べてきましたが、これについての適切な説明はまだ見つかりません...

ブログが統合されたRailsアプリがあり、そのブログをサブドメインに配置したいと思います。つまり。blog.myapp.com

さて、ブログ内で、ユーザーが投稿を表示できるようにしたいと思いますblog.myapp.com/posts/123。ただし、ユーザーがサイト上の他のリソースをクリックした場合、videosたとえば、ルートにリダイレクトされるようにします。www.myapp.com/videos/123。ルーティングエラーを発生させたくありませんblog.myapp.com/videos...。リダイレクトしたいだけです。

基本的に、私はサブドメインを設定し、特定のコントローラーがそのサブドメインを使用し、他のコントローラーは使用しないように指定する最も簡単な方法を探しています。理想的には、コントローラーレイヤーで双方向のリダイレクトを処理して、ビューでヘルパーを使用するだけで前後にリンクできるようpost_path(123)video_path(123)し、サブドメインが自動的に使用されるか、どのコントローラーがサービスを提供しているかに基づいて使用されないようにします。見る。

すべてのコントローラーを制約ブロックに入れてみました。つまり、次のようになります。

constraints :subdomain => 'www' do
    resources :sessions
    resources :users
    resources :videos
            root :to => 'home#show'
end

constraints :subdomain => 'nexturb' do
    resources :posts
    root :to => "posts#index"
end
root :to => 'home#show'

ただし、これはうまく機能していないようです。特に、リンク間のリダイレクトを非常に一貫して機能させるのに問題がありました。

他の人が過去にこの問題に遭遇したに違いないと私は確信していますが、私はこの状況の良い例を書面で見つけることができないようです。これを処理するための最良の方法は何ですか?

4

1 に答える 1

3

herehere、およびhereの助けを借りて...私は最終的にこれを理解しました:

constraints :subdomain => 'blog' do
    scope '', :subdomain => 'blog' do
        resources :posts
    end
    root :to => 'posts#index'
end

これにより、posts_pathヘルパーは訪問者をサブドメインに正しく送信します。

于 2012-05-16T02:07:42.393 に答える