Controllerモジュールで$cをとる方法
C::C::FormBuilderがベストプラクティスって教えてもろたんやけど、$cはActionでとってるなぁ。
このモジュールやと、
sub _get_c_obj { # used to find $c from some catalyst action called long long ago # needed in the attribute handlers my $level = shift; # how many levels to go up the stack for ( my $i = 0; $i < 10; $i++ ) { my $c = ( eval { Devel::Caller::caller_args($level + $i) } )[1]; # ( $self, $c )[1] return $c if Scalar::Util::blessed($c) and $c->isa("Catalyst"); # FIXME Catalyst::Context ? } die "panic: Can't find \$c object"; }
こんな感じで、コントローラ内で、無理矢理とってはるようやなぁ。
同じようなこと、RTのパフォーマンスあげようとした時にしたなぁ、そういえば。
あと、アクションを理解してなさすぎやなぁ。修行が足りないなぁ。
追記
なんか、この関数そのまま試したけど、とれんかったっちゃ。