« prototype.jsとThickBox(jQuery)のコンフリクトを防ぐ方法 | メイン | ApacheでCGIが使うリソースの制限をかける »

FillInFormとRenderViewを一緒に使う

CatalystでAction::RenderViewの機能を生かしつつPluginのFillInFormをendメソッドの中で使うときの注意、というかやりかた。fillform()を呼ぶときはテンプレートがレンダリングされた後に呼ぶ必要があるのでヘルパーで作ったendメソッドをrenderメソッドにコピって新しいendメソッドを作りその中でfillform()する。

package MyApp::Controller::Root;

use strict;
use warnings;
use base 'Catalyst::Controller';

__PACKAGE__->config->{namespace} = '';

sub default : Private {
  my ( $self, $c ) = @_;
}

sub render : ActionClass('RenderView') {}

sub end : Private {
  my ( $self, $c ) = @_;
  $c->forward('render');
  $c->fillform;
}

1;

FillInForm初めて使ったけど便利だ。

トラックバック

このエントリーのトラックバックURL:
http://yusukebe.com/mt/mt-tb.cgi/2105

コメントを投稿

(いままで、ここでコメントしたことがないときは、コメントを表示する前にこのブログのオーナーの承認が必要になることがあります。承認されるまではコメントは表示されません。そのときはしばらく待ってください。)


ブログSEO対策:track word seo