rails:879
From: Kazuhiro Yoshida <moriq@m...>
Date: Mon, 16 Jan 2006 16:05:40 +0900
Subject: [rails:879] Re: controller内サブディレクトリのベースコントローラーは?
もりきゅうです。 manabu togawa wrote: > app/controller/内にadminという名前のサブディレクトリを作成し、管理者用の > ページをまとめたいと思っています。 > > アプリケーション共通のコントローラapp/application.rbのように、adminディ > レクトリ内だけで共通のコントローラはどのように定義することができるので > しょうか?またadmin共通のレイアウトはどのディレクトリに用意すればよいの > でしょうか? まず controller と view のサブディレクトリについて。 これはモジュール名を付けたコントローラを作ることになります。 例えば、 $ script/generate controller Admin::Customer list show new edit destroy create app/controllers/admin create app/helpers/admin create app/views/admin/customer create test/functional/admin create app/controllers/admin/customer_controller.rb create test/functional/admin/customer_controller_test.rb create app/helpers/admin/customer_helper.rb create app/views/admin/customer/list.rhtml create app/views/admin/customer/show.rhtml create app/views/admin/customer/new.rhtml create app/views/admin/customer/edit.rhtml create app/views/admin/customer/destroy.rhtml こうすると、 app/controllers/admin/customer_controller.rb: class Admin::CustomerController < ApplicationController ... end このように、ディレクトリに合わせてモジュール名が付きます。 これに対応する view は、上記で作られたファイルを見れば明らかなように、 app/views/admin/customer/ というディレクトリに置くことになります。 app/application.rb のような共通のコントローラについては、継承関係を作れ ばいいと思います。 例えば、 app/controllers/admin/application.rb: class Admin::ApplicationController < ApplicationController ... end これをadminに共通のコントローラとして作っておけば、 app/controllers/admin/customer_controller.rb: class Admin::CustomerController < Admin::ApplicationController ... end このように継承して使えるでしょう。 -- ML: rails@r... 使い方: http://QuickML.com/
@ 878 2006-01-16 02:35 [togawamanabu@g... ] controller内サブディレクトリのベースコントローラーは? -> 879 2006-01-16 08:05 ┗[moriq@m... ] 880 2006-01-16 08:22 ┗[moriq@m... ] @ 881 2006-01-16 15:52 ┗[togawamanabu@g... ]