Catalyst を伝える。
新人さんが今月頭から入社して
なりゆきで私が教育係に。
う"ーん、たいして知識もない、へなちょこプログラマーの私なのに
何故かどこの現場でも、教育係になるタイミングがあるもんだなぁ。
なにはともあれ、coLinux 上に CentOS のインストールが済み次第、
早速 Catalyst の課題を出さないとアカンかったのだが
今回の新人さんは perl と Linux 上での開発経験がないところからスタートなので、
とりあえず、全ての作業手順が書いてある資料が欲しいのだが...ない。
私が入社した時もなかったしなぁ。
今、全体的にドキュメント作ってる最中だしなぁ。
なにはともあれ、何も目標もなく
ただただ perl や Linux に慣れてね、というのも困ると思うので、
とりあえず、新人さんが自力でググって見つけたサイトで Catalyst のお勉強モードへ。
でも、困ったなぁ。
実はこのページ、私も以前使って勉強したんだけど
情報が古いので、今のバージョンのだと状況が違ったりするし、
さらに Windows 上での開発環境で書かれてるもんだから
現場の Linux 上で開発するのには、
UNIXコマンドを自力で調べてやってもらわないとアカンのですよ。うー。
しまったなぁ。
もっと早く、新人さんの状況を知れたり、課題内容が確定してりゃー
土日使って、前以て資料作っておいたのになぁ。
てな訳で、とりあえず、今週は途中までサイトの内容を進められたんだけど
続きは梃子摺りそうな気配がしてたので、この土日使って調べておこうと思った次第。
んで、さっき、調べ終わったんで、
その超適当メモ。
・SQLite からみのエラー find_or_create が見つからないの件
script/memo_create.pl model DBIC DBIC dbi:SQLite:/home/xxx/work/Memo/db/memo.db
これで新しく出来た DBIC.pm.new を DBIC.pm にリネームすること
・テンプレートの設置場所
work/Memo/root/ 配下
・Read の生成 - コントローラー - Memo::Controller::Read
package Memo::Controller::Read;
use strict;
use warnings;
use parent 'Catalyst::Controller';
sub read : Regex('^read/(\w+)$') {
my ( $self, $c ) = @_;
$c->stash->{template} = 'read.tt';
my $id = $c->request->snippets->[0];
unless ($id) {
return 0;
}
my $table = $c->model('DBIC::Memo');
my $record = $table->find({id => $id});
$c->stash->{memo} = $record;
}
1;
勿論、エラー処理はもっと丁寧にね。
ちなみに find(id => $id) だと、以下の warning が出る
DBIx::Class::ResultSetProxy::find(): Find by key => value deprecated; please use a hashref instead at /home/anigon/work/Memo/script/../lib/Memo/Controller/Read.pm line 42
1件のみじゃなくて、リストで表示するとか
いろいろやってもらうなら、DBI のリファレンスを見てもらった方が良いかも。
あ、CPAN のサイトも見てもらわないとなぁ。
・Read の生成 - テンプレート - work/Memo/root/read.tt
id:[% memo.id %]
title:[% memo.title %]
message:[% memo.message %]
これをクリアしたら、やっと課題かなー。