2

我正在使用 yesod-sqlite 模板并尝试在测试中使用该get函数Database.Persist

这是我的代码:

[Entity _ task] <- runDB $ selectList [TaskName ==. name] []
...
user <- runDB $ X.get (taskUserId task)

我得到的错误是:

my_project/test/Handler/TaskSpec.hs:47:29: error:
Not in scope: ‘X.get’
No module named ‘X’ is imported.

TestImport.hs文件中,我看到了这一行:

import Database.Persist      as X hiding (get)

据我了解,它应该隐藏getHSpec 模块中的功能,因此我可以X.get用于数据库检索。我也尝试过,Database.Persist.get结果get相同。

所以我的疑问是:那条线在TestImport.hs做什么?

4

1 回答 1

4

导入行正在导入Database.Persist模块中的所有内容,除了 get,可选地限定。

如果我理解正确,并且您只想导入合格 get的,而其他一切不合格,您可以使用:

import Database.Persist hiding (get)
import qualified Database.Persist as X (get)
于 2017-05-30T16:01:06.407 回答