catalyst 中 model 和 $c(context) 的使用

Catalyst Manual中有一段创建新纪录的代码, Oracle数据库表Books有三个列,Id,Title, Rating,其中ID是主键:
<code>

# Call create() on the book model object. Pass the table
        # columns/field values we want to set as hash values
        my $book = $c->model('DB::Books')->create({
                title  => $title,
                rating => $rating
            });

</code>
这里仅插入2个字段,主键被忽略了,且Oracle报错,主键不能为空。create()方法的说明在哪里能找到?

另外,显示超链接的TT文件中,"[% c.uri_for('/books/list') %]"的值是空, 能给些建议么? 谢谢
<code>

[% # Provide a link back to the list page                                    -%]
    [% # 'uri_for()' builds a full URI; e.g., 'http://localhost:3000/books/list' -%]
    <p><a href="[% c.uri_for('/books/list') %]">Return to list</a></p>

</code>