Question

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?

Was it helpful?

Solution

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.

Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top