Mapper的toForm方法在提交时什么都不做?

时间:2012-01-09 20:12:17

标签: lift

我有一个非常简单的代码片段,可以在数据库的books表中添加一个新行:

def add = Book.toForm(Full("Add"), { _.save })

在我的模板中调用此代码片段会生成一个表单,并且提交表单会给我一个帖子请求,但没有任何反应,它从不尝试与数据库通信,不会发生错误或异常:

09:03:53.631 [865021464@qtp-2111575312-18] INFO  net.liftweb.util.TimeHelpers - Service request (POST) /books/ returned 200, took 531 Milliseconds

我不确定我的模型的保存方法是否未被调用,或者保存方法是否无效。根据“提升行动”一书中的示例,我认为默认的Mapper保存方法应该正常工作,这就是我现在正在使用的方法。我的模型类很简单:

class Book extends LongKeyedMapper[Book] with IdPK {
    def getSingleton = Book
    object name extends MappedString(this, 100)
}

object Book extends Book with LongKeyedMetaMapper[Book] {
    override def dbTableName = "books"
}

我在模型中遗漏了什么,或者这看起来是否正确?如果这应该有效,我该如何调试它不起作用?

1 个答案:

答案 0 :(得分:0)

如果您没有会话,表单就不起作用(因此您需要启用Cookie)。会话将表单名称映射到服务器上的函数。不幸的是,当找不到表单的处理函数时,电梯没有记录错误。