0

サーバー上で Rails アプリを実行しています。これは大きなプロジェクトであるため、多くのルートが関係しており、現時点では 2 つのドメインがルートを指しています。routes.rbあるドメインを解釈して、それがルートであるかのようにアプリの特定の部分に移動し、他のドメインを他の場所に使用するように設計したいと思います。

このようなもの(非常に疑似コードです。アイデアが得られることを願っています):

whole_app.com
whole_app.com/documents
whole_app.com/share
whole_app.com/users
partial_app.com, :points_to => 'whole_app.com/share'

Railsはこれを処理できますか? ありがとうございました!

4

2 に答える 2

2

これは、アプリケーション コントローラーでデフォルトの url_options メソッドをオーバーライドすることで実現できます。これにより、すべてのリクエストのホスト URL が上書きされます。

class ApplicationController < ActionController::Base
  ....
  def default_url_options
    if some_condition
      {:host => "partial_app.com"}
    else  
      {:host => "whole_app.com"}
    end
  end
  ....
end

特定の URL へのルートを指定するには、次のようにします。

match "/my_url" => redirect("http://google.com/"), :as => :my_url_path

より良い方法は、サーバーで設定を行って、一部の URL を特定の場所にリダイレクトすることです。

于 2013-08-27T05:22:20.343 に答える
0

/share何らかの基準に基づいているのでしょうか?もしそうなら、これを行うことができます:

routes.rb

root :to => 'pages#home'

pages_controller.rb

def home
  if (some condition is met) 
    redirect_to this_path
  else
    render :layout => 'that'
  end
end
于 2013-08-27T04:13:49.327 に答える