2017-05-30 9 views
2

yesod-sqliteテンプレートを使用して、関数をDatabase.Persistのテストで使用しようとしています。ここでyesod-sqliteテンプレートから「Database.PersistをXの隠蔽(取得)」としてインポートするとどうなりますか

は私のコードです:

[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関数を隠す必要があるので、を使用することができますデータベース検索用の。私もDatabase.Persist.getで試したところ、getと同じ結果が出ました。

だから私の疑問は:TestImport.hsのその行は何をしているのですか?

答えて

4

Database.Persistモジュールのすべてをインポートしています。get(オプションで修飾されています)。

私が正しく理解することだし、あなたがだけget資格をインポートすると、他のすべてが修飾されていない場合は、あなたが使用できます。

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

私もあなた*は*で修飾されたインポートを混在可能性が知りませんでしたインポートリスト – luqui

関連する問題