Import.hs を入れました
import qualified Database.Esqueleto as E
しかし、私が持っているハンドラーファイルでは
import Import
しかし、それはEを見つけることができませんでした
module Handler.MyProfile where
import Import
getMyProfileR :: Handler Html
getMyProfileR = do
now <- liftIO getCurrentTime
wordList <- (runDB $ E.select $ E.from $ \v -> do
where_ (v ^. VocabularyDate E.<. val now)
return v)
defaultLayout $ do
$(widgetFile "myprofile")
それは可能ではありません。それは修飾されたインポートの主な目的、つまり修飾子接頭辞が何かがどこから来たのかを教えてくれるということを無効にしてしまいます。E.<.
コードに含まれている場合、読者はそのコードがどこから来たのかを知りたがります!
次の 2 つのオプションがあります。
import qualified Database.Esqueleto as E
直接入れますHandler.MyProfile
。これは、多くの場合、最良の解決策です。すべてのソース ファイルの上にヘッダーがやや扱いにくいものになりますが、利点は、すべてがどこから来ているのかをすぐに確認できることです。はい、DRYに違反していますが、それでもこの場合は妥当だと思います。esqueleto 用の専用の「インポートモジュール」を作成します。そして、必要に応じて、あなたが持っている他のインポート修飾子プレフィックス。
module Import.Esqueleto where -- package-local, hidden module
import Database.Esqueleto
import Database.Esqueleto....
module Handler.MyProfile where
import qualified Import.Esqueleto as E
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加