zenpouの中身(Ruby on Railsのシステム開発)

railsのコントローラーにmoduleをinlcudeする時、

moduleにbefore_filterを書いても、AplicationControllerを

継承していないのでエラーが出ます。

 

moduleで共通化してるわけですから、before_filterもmodule側で

済ませちゃいたいですよね。

 

 というわけでやり方です。

コントローラと違って、モジュールはActionControllerを継承してないことが

原因でエラーが出ているので、コントローラー側で定義してしまえばエラーが

出ません。

 

じゃあ、インクルード後に、インクルードしたコントローラ自身に定義する様

書いてあげましょう。

 

module NantokaModule
def self.included(base)
base.class_eval{
before_filter :filter_name
}
end
end
 
self.includedというメソッドは、moduleをincludeした時に呼び出されるメソッドです。
で、baseは、呼び出した側のクラスが入ってきますので、そちらに対して、class_evalを
実行します。
そうすると、クラスにbefore_filter~~が宣言されることになります。 

 

コメント (0)

ブックマークに追加する

.
web開発ならKBMJ
Rubyでのwebシステム開発は
実績豊富なKBMJにお任せ下さい
iPhone開発
iPhone開発は
KBMJにお任せ下さい
ファイル共有サービス DUB
クラウドファイル共有サービス「DUB」
オープンソースECパッケージ エレコマ
オープンソースECパッケージ
「エレコマ」

プロフィール

zenpou
zenpou
1. 名前: たかせゆういち
2. blog: http://d.hatena.ne.jp/zenpou
3. 年齢: 24くらい

Railsについて

1. KBMJでRailsの開発をやっています。
2. 小江戸らぐというユーザーグループで、毎月Railsの勉強会の講師をしています。。

開発環境とか

1. Windows Vista(ノート) と Windows XP(デスクトップ)を2台並べてます。(synergyで連動)
2. でも、実際に開発する場合、ネットに繋がってたらLinuxにPuttyで接続して開発。
3. ネットに繋がってない場所だと、ローカルのcoLinux上にPuttyで接続して開発。
4. 開発に使うLinuxは、ディストリは余り気にしないけど、debianとCentOSとFedora。
5. Linux上でzsh + screen で開発します。screenで画面切り替えながらログをtail -fしたり、ruby script/consoleしたり、mysqlしたり。
6. エディタはvim使ってます。

最近チェックした記事

最新記事

アーカイブ

アクセスランキング

KBMJのWebソリューション
Ruby on railsの開発ならKBMJ
株式会社ケイビーエムジェイ