2016-11-23 5 views
-1

私は自分のレールアプリケーションに管理パネルを構築しようとしていますが、私の管理コントローラは他のコントローラから遠ざけています。とにかくadminのフォルダに管理者のためのコントローラしか入っていないアプリケーションフォルダにadminフォルダがありますか?コントローラはまったく別のディレクトリにあります

ありがとうございます。

答えて

4

はい、確かです。

すべての管理者関連のコントローラをapp/controllers/admin/ディレクトリに置くことができます。

1

はい、管理モジュールの下にコントローラを名前を付けることでこれを行うことができます。特定のためのrails g controllerができます

rails generate controller admin/user 

タイプ:

これを設定する最も簡単な方法は、レール・ジェネレータを使用し、「管理者」を使用して、リソースの前に付けることです。あなたは完全に独立し、あなたの管理を維持したい場合は、エンジンを使用することができますhttp://guides.rubyonrails.org/routing.html#controller-namespaces-and-routing

+0

おかげで、しかし、私はコントローラのディレクトリの外に私の管理者のコントローラを完全に持っていることを望んでいたので、/ app/controllers/adminの代わりに/ app/admin –

+0

エンジンを使うことができます:http://guides.rubyonrails.org/engines.html – mysmallidea

0

は、ここでより多くの情報とガイドからのページです。エンジンを生成するには、実行します。

rails plugin new admin --mountable 

を次に、あなたのメインアプリのルート・ファイルで、あなたがエンジンをマウントすることができます。

mount Admin::Engine => "/admin" 

エンジンに関する完全な詳細についてはhttp://guides.rubyonrails.org/engines.htmlを参照してください。

0

非常に簡単ですが、通常app/controllers/adminに入れるのが理にかかりますが、これを使用する場合は名前空間を使用する必要があります。 Railsはこれらのクラスを自動的にロードします。

それは、このような名前空間ごとApplicationControllerにを作ることをお勧め(私はそれベースコントローラを呼んでいる)だ:

module Admin 
    class BaseController < ApplicationController 

    end 
end 

、ここでexapmleコントローラです:答えを

module Admin 
    class ExampleController < Admin::BaseController 
    def example 
    end 
    end 
end 
関連する問題