Вопрос

In Yesod, I've got a form that populates the type

data Field = Field Text Text text
  deriving Show

When I write the hamlet html to display it, I'm running into the problem that Field is wrapped up in Maybe Maybe Field. So in hamlet I'm trying to do the following as shown here

(Snippet in postHomeR function)

let fieldData = case result of
      FormSuccess res -> Just res
      _               -> Nothing

(In the hamlet file)

<ul>
  $maybe (Field one two three) <- fieldData
  <li>#{show one}

However, when compiling there is Not in scope: one error. Why is the variable one not created/populated correctly?

Это было полезно?

Решение

You need to indent the <li> so that it's inside the $maybe block. As it sits now, it's a sibling to the $maybe, and thus the variables bound by $maybe are not in scope.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top