CatalystでDB用のModel作り直したらエラーが出た。
Model作り直したらなぜかView::JSONを見にいくようになったので、 default_view => 'TT' を指定したら直ったという話。
Twitterで済む分量だった。けどちょっと詳細に書く。
- View::TTとView::JSONを使ってた。
- 特に指定しないとView::TTが使われていた。
- DBにテーブルを追加したので、いったんModelを消して再作成した。
rm MyApp/lib/MyApp/Model/MyDB.pm rm MyApp/t/model_MyDB.t rm MyApp/lib/MyApp/Schema.pm rm -r MyApp/lib/MyApp/Schema/Result MyApp/script/myapp_create.pl model MyDB DBIC::Schema MyApp::Schema create=static dbi:mysql:database=MyDB:host=ホスト情報 ユーザー名 パスワード exists "MyApp/script/../lib/MyApp/Model" exists "MyApp/script/../t" Dumping manual schema for Bestgame::Schema to directory MyApp/script/../lib ... Schema dump completed. created "MyApp/script/../lib/MyApp/Model/mydb.pm" created "MyApp/script/../t/model_hsksyusk.t"
- この状態でブラウザからアプリにアクセスすると、それまでView::TTで表示されていたところがJSONデータの形式で表示されたり、以下のようなエラーが出たり。
Caught exception in MyApp::View::JSON->process "encountered object 'MyApp::Model::mydb::mytable=HASH(0xacdec9c)', but neither allow_blessed nor convert_blessed settings are enabled at (eval 1587) line 151."
- MyApp/lib/MyApp.pmを編集して、 default_view => 'TT' を指定すると直った。
__PACKAGE__->config( default_view => 'TT', )