私は自分のレールアプリケーションに管理パネルを構築しようとしていますが、私の管理コントローラは他のコントローラから遠ざけています。とにかくadminのフォルダに管理者のためのコントローラしか入っていないアプリケーションフォルダにadminフォルダがありますか?コントローラはまったく別のディレクトリにあります
ありがとうございます。
私は自分のレールアプリケーションに管理パネルを構築しようとしていますが、私の管理コントローラは他のコントローラから遠ざけています。とにかくadminのフォルダに管理者のためのコントローラしか入っていないアプリケーションフォルダにadminフォルダがありますか?コントローラはまったく別のディレクトリにあります
ありがとうございます。
はい、確かです。
すべての管理者関連のコントローラをapp/controllers/admin/
ディレクトリに置くことができます。
はい、管理モジュールの下にコントローラを名前を付けることでこれを行うことができます。特定のためのrails g controller
ができます
rails generate controller admin/user
タイプ:
これを設定する最も簡単な方法は、レール・ジェネレータを使用し、「管理者」を使用して、リソースの前に付けることです。あなたは完全に独立し、あなたの管理を維持したい場合は、エンジンを使用することができますhttp://guides.rubyonrails.org/routing.html#controller-namespaces-and-routing
:
は、ここでより多くの情報とガイドからのページです。エンジンを生成するには、実行します。
rails plugin new admin --mountable
を次に、あなたのメインアプリのルート・ファイルで、あなたがエンジンをマウントすることができます。
mount Admin::Engine => "/admin"
エンジンに関する完全な詳細についてはhttp://guides.rubyonrails.org/engines.htmlを参照してください。
非常に簡単ですが、通常app/controllers/admin
に入れるのが理にかかりますが、これを使用する場合は名前空間を使用する必要があります。 Railsはこれらのクラスを自動的にロードします。
それは、このような名前空間ごとApplicationControllerにを作ることをお勧め(私はそれベースコントローラを呼んでいる)だ:
module Admin
class BaseController < ApplicationController
end
end
、ここでexapmleコントローラです:答えを
module Admin
class ExampleController < Admin::BaseController
def example
end
end
end
おかげで、しかし、私はコントローラのディレクトリの外に私の管理者のコントローラを完全に持っていることを望んでいたので、/ app/controllers/adminの代わりに/ app/admin –
エンジンを使うことができます:http://guides.rubyonrails.org/engines.html – mysmallidea