質問: hamlet 内からMaybe PersistInt64 (おそらく primaryKey) を指定して、dataBase からレコードを取得するにはどうすればよいですか?
私がホームページを持っているとしましょう。
ログインしているユーザーが私のホームページにアクセスすると、
そのユーザーの名前が表示され、ログアウトするオプションが表示されます。
ログインしていない人が私のホームページにアクセスすると、
その人はログインを求められます。
Muid はおそらく PersistInt64です
。ログインしていない誰かがホームページにアクセスする
と、PersistInt64 の代わりに何もないレコードをフェッチしようとするとエラーが発生する
ため、hamlet コード内でユーザーのレコードを取得し
たいので、必要なのは
muid が何もなく、それが $maybe _ <- muid のコード ブロックにある場合に、userId 別名 (fromJust muid) でレコードを取得する
getHomeR :: Handler Html
getHomeR = do
muid <- maybeAuthId
defaultLayout $ do
[whamlet|
<p>Welcome!
$maybe _ <- muid
<p>
$with user <- fromJust (runDB $ get (fromJust muid)) 'does not work'
Welcome #{userIdent user}<br>
<a href=@{AuthR LogoutR}>Logout
$nothing
<p>
<a href=@{AuthR LoginR}>Go to the login page
|]