2

私は次のルートを持っています:

namespace :admin do
  scope 'foo', module: 'foo' do
    resources :bar
    resources :baz
  end

  scope 'lorem', module: 'lorem' do
    resources :ipsum
    resources :baz
  end
end

ここで、「baz」リソースで同じコントローラーを使用したいと思います(にありcontrollers/admin/baz_controller.rbますが、これらのリソースを別々の名前空間で使用したいが、同じコントローラーを使用するようにRailsに指示する方法がわかりません。

4

3 に答える 3

0

多分これが役立つかもしれません。

namespace :admin do
  resources :baz, path: 'foo/baz', as: 'foo_baz'
  scope 'foo', module: 'foo' do
    resources :bar
  end

  resources :baz, path: 'lorem/baz', as: 'lorem_baz'
  scope 'lorem', module: 'lorem' do
    resources :ipsum
  end
end

as:パスを生成できるようにするには、 を使用する必要があることに注意してください。しかし、それらは別のものになる可能性があります。

モジュールパラメーターも追加する必要があるかどうかはわかりませんが、アイデアは得られました。

于 2012-08-06T19:28:40.283 に答える
0

面倒なルートを作成せずにこれを行う唯一の方法は、古いコントローラーを継承する新しいコントローラーを作成することだと思います。

class Foo::BazController < Admin::BazController
end
于 2012-08-11T08:57:27.380 に答える
0

次のようになります。

scope 'lorem', module: 'lorem' do
  resources :ipsum
  resources :baz, :module=>'foo', :controller=>'baz'
end

これは、コントローラーが入っているモジュールによって異なります。

詳細については、Rails ガイドRails APIを参照してください。

于 2012-08-02T09:02:23.313 に答える