के लिए है, मैं हांद पुस्तक और स्रोत के माध्यम से गया और सबकुछ सीखा कि सब कुछ कैसे काम करता है। लेकिन इससे पहले कि मैं अपनी खुद की चीजें लिखूं, मचान वाली साइट में एक चीज है जिसे मैं समझ नहीं पा रहा हूं।मुझे समझ में नहीं आता है कि इस प्रकार की पारिवारिक सामग्री हूद में
तो मैं एक साइट "copywww" और फ़ाइल CopyWWWState.hs में मचान वहाँ कोड है:
type AuthId CopyWWWState = UserId
type YesodDB CopyWWWState = SqlPersist
:
instance YesodPersist CopyWWWState where
type YesodDB CopyWWWState = SqlPersist
runDB db = liftIOHandler
$ fmap connPool getYesod >>= Settings.runConnectionPool db
instance YesodAuth CopyWWWState where
type AuthId CopyWWWState = UserId
-- Where to send a user after successful login
loginDest _ = RootR
-- Where to send a user after logout
logoutDest _ = RootR
getAuthId creds = runDB $ do
x <- getBy $ UniqueUser $ credsIdent creds
case x of
Just (uid, _) -> return $ Just uid
Nothing -> do
fmap Just $ insert $ User (credsIdent creds) Nothing
authPlugins = [ authOpenId
, authEmail
]
लाइनों है कि मुझे समझ नहीं आता होते हैं जब मैं उन्हें हटा देता हूं, तो मुझे स्पष्ट रूप से त्रुटियां मिलती हैं, लेकिन मुझे यकीन नहीं है कि उन्हें पहले स्थान की आवश्यकता क्यों है। जब मैं "UserId" या "SqlPersist" के स्रोत को खोजता हूं तो मैं ऐसा कुछ भी नहीं करता जो वादा करता है। इस कोड को वास्तव में क्या होना चाहिए? इन वर्गों में टाइप परिवारों का उपयोग करने से हाँद को क्या फायदा होता है?