ここでhttp://search.cpan.org/~frew/DBIx-Class-0.08200/lib/DBIx/Class/Manual/Cookbook.pod#Setting_default_values_for_a_rowを読みましたが、列のデフォルト値を設定する方法は新しい方法。
私の問題は、新しいメソッドが呼び出されないことです。
ユーザー.pm
package MyApp::SchemaTest::Result::User;
use strict;
use warnings;
use base qw/DBIx::Class::Core/;
sub new {
die "new: @_";
}
__PACKAGE__->table("GECKO_USER");
__PACKAGE__->add_columns(
"user_id",
{ data_type => "integer", is_auto_increment => 1, is_nullable => 0 },
"first_name",
{ data_type => "varchar2", is_nullable => 0, size => 45 },
"last_name",
{ data_type => "varchar2", is_nullable => 0, size => 45 } );
__PACKAGE__->set_primary_key("user_id");
1;
test.pl
use Gecko2::SchemaTest;
my $schema = Gecko2::SchemaTest->connect("dbi:SQLite:$FindBin::Bin/../db/gecko2.sqlite");
ok($schema, "got schema");
my $user = $schema->resultset('User')->find( { login => 'toto' });
use DDP;
p $user;
そして、$user オブジェクトを完全に構築して操作できるようにします。つまり、まったく新しいメソッドが呼び出されることはありません。 なぜだめですか ???
私はそれを動かそうとしましたが、成功しませんでした...