2

URLに名前空間を付けずに、コントローラーの名前空間を設定できるようにしたいと思います。たとえば、次のようなフォルダーにコントローラーを配置できるようにしたいと思います。

app/controllers/abc/my_controller

と別の

app/controllers/def/my_controller

ルートに/abcまたは/defを含めたくないので、代わりに制約を使用してルート間の曖昧さを解消しています。これを達成するための最もRailsの方法は何ですか?

背景:マルチドメインサイトを構築していますが、制約はリクエストドメインです。

4

2 に答える 2

14

ブロックでスコープを使用できます。

scope :module => "abc" do
  resources :my_controller
end

scope :module => "def" do
  resources :my_controller
end

または個別に渡す

resources :my_controller, :module => "abc"
resources :my_controller, :module => "def"

詳細については、ルート ガイドをご覧ください。スコープに関する情報は、リンク先のセクションの表のすぐ下にあります。

于 2012-09-15T04:07:10.707 に答える
1

ルート.rb:

resources :resource_name, module: 'ControllerNameSpace', constraints: {subdomain: 'foo'}

Railsガイドリンク

于 2012-09-14T22:59:01.487 に答える