【问题标题】:How does "import Database.Persist as X hiding (get)" from the yesod-sqlite template works从 yesod-sqlite 模板中“导入 Database.Persist 作为 X 隐藏(获取)”如何工作
【发布时间】:2017-10-31 02:53:37
【问题描述】:

我正在使用 yesod-sqlite 模板并尝试在测试中使用来自 Database.Persistget 函数。

这是我的代码:

[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)

据我了解,它应该隐藏 HSpec 模块中的 get 函数,因此我可以使用 X.get 进行数据库检索。我还尝试了Database.Persist.getget,结果相同。

所以我的疑问是:TestImport.hs 中的那一行在做什么?

【问题讨论】:

    标签: haskell yesod hspec haskell-persistent


    【解决方案1】:

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

    如果我理解正确并且您想导入get合格,而其他所有内容均不合格,您可以使用:

    import Database.Persist hiding (get)
    import qualified Database.Persist as X (get)
    

    【讨论】:

    • 我什至不知道您可以将合格的导入与导入列表混合
    猜你喜欢
    • 2017-07-05
    • 1970-01-01
    • 2020-12-13
    • 2016-06-20
    • 1970-01-01
    • 2018-01-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多