Railsの別のセクション

ruby ruby-on-rails ruby-on-rails-3
Railsの別のセクション

Rails 3で別のセクションを作成することについて多くの議論を見ましたが、完全なガイドではありませんでした。

たとえば、別のセクションを作成したい

/admin/...

私の以前のコントローラーはすべてから継承します

ApplicationController

そして使う

layout/application.html.erb

だから今、私は新しく作成された/ admin /に配置されているすべてのコントローラが欲しいです…​ 別のBaseControllerを継承し、application.html.erbとは異なるレイアウトを使用するディレクトリ。 それが可能であれば、どのファイルを/ admin / …​に作成する必要があるかについてのガイドを提供できますか? レイアウトとルートファイルに何を配置する必要がありますか?

前もって感謝します。

  2  0


ベストアンサー

コントローラーの下にadminディレクトリーを作成し、「admin」コントローラーを使用します(したがって、それらはセットのレイアウトを継承します-また、認証の強制などに役立ちます)。

class Admin::AdminController < ApplicationController
  layout 'admin/admin'
end

次に、管理ディレクトリ内の他のコントローラーを管理コントローラーから拡張します。

class Admin::CategoriesController < Admin::AdminController

  def index
    ...
  end

end

レイアウトとadmin.html.erb(または使用しているテンプレートエンジン、レイアウトには任意の名前を付けることができます)の下にもadminフォルダーを作成する必要があります。 他の管理コントローラーメソッドのビューも、それぞれの管理フォルダー(app / views / admin / categories / index.html.erbなど)の下に存在する必要があります(2番目の管理はコントローラーの名前です

また、 `routes.rb`にルートを追加する必要があります-Rails 3を想定しています

namespace :admin do
  root :to => 'admin#index' #default page when accessing /admin
  resources :categories #whatever resources you want
  ...
end

5


/ admin /にbase_controller.rbを追加し、/ admin /の他のコントローラーにAdmin

BaseControllerを継承させることができます。 /admin/base_controller.rbに<ApplicationControllerを含めるだけです。

/admin/base_controller.rbでレイアウトを指定します。

ルーティングの場合、一般公開で利用可能な参照を追加するだけです。 名前空間を追加します。

namespace :admin do
    resouces :xyz
end

0


タイトルとURLをコピーしました