上下文:https : //github.com/fusspawn/tserver/blob/master/app/controllers/gorp.go作为尝试进行 gorm 设置的一部分,我尝试转换标准 revel/gorp 示例。然而。即使定义了 Begin()、Commit()、Rollback() 方法也足以引起恐慌。 TRACE 2015/09/06 17:37:47 harness.go:126: Rebuild INFO 2015/09/06 17:37:47 build.go:172: Cleaning dir tmp INFO 2015/09/06 17:37:47 build.go:172: Cleaning dir routes INFO 2015/09/06 17:37:47 build.go:172: Cleaning dir tmp INFO 2015/09/06 17:37:47 build.go:172: Cleaning dir routes TRACE 2015/09/06 17:37:47 build.go:151: Exec: [/usr/bin/git --git- dir=/home/fusspawn/go/src/github.com/fusspawn/tserver/.git describe --always -- dirty] TRACE 2015/09/06 17:37:47 build.go:94: Exec: [/usr/bin/go build -ldflags -X github.com/fusspawn/tserver/app.APP_VERSION "git-2588ef1" -tags -o /ho me/fusspawn/go/bin/revel.d/github.com/fusspawn/tserver/tserver github.com/fusspawn/tserver/app/tmp] TRACE 2015/09/06 17:39:14 app.go:56: Exec app: /home/fusspawn/go/bin/revel.d/github.com/fusspawn/tserver/tserver [/home/fusspawn/go/bin/revel.d/git hub.com/fusspawn/tserver/tserver -port=46276 - importPath=github.com/fusspawn/tserver -runMode=dev] 注释掉方法定义将停止恐慌。我似乎无法理解如何不调用这些方法(注意 revel.InterceptMethod 调用被注释掉)会使恐慌发生:/
1 回答
富国沪深
TA贡献1790条经验 获得超9个赞
根据 Revel 文档,系统通过扫描您的源目录以查找任何匿名嵌入*Revel.Controller
. 您看到的错误是由于 Revel 在此控制器扫描初始化期间进行动态反射并搞砸了。所以现在的问题是:为什么它在扫描控制器时遇到问题?
您的代码似乎试图扩展EventStream 中的控制器,Revel 调试控制器发现代码将尝试将其作为控制器读取。但是,目前的代码通过嵌入 a*GormController
而不是GormController
;目前违反了框架的预期。请参阅控制器文档的最后一部分。
我认为控制器发现逻辑只是因为这个而窒息。修复EventStream
结构定义。
如果这确实为您解决了问题,您可能应该向 Revel 人员发送错误报告,因为您返回的错误消息非常糟糕且非本地,因为它没有提到它的名称尝试在失败时注册为控制器。
- 1 回答
- 0 关注
- 183 浏览
添加回答
举报
0/150
提交
取消