NameError - Problems with if-else

Hi,

i have a problem with if-else.
I get this error: “uninitialized constant
ActionView::Base::CompiledTemplates::Male”

I want to change the background-color for male and female. So i wrote
this code with if and else.
I think there is a mistake in line 8. How could this work. What do i
have to write?

5: <% for article in @articles %>

6:


7: <%= h article.gender %>
8: <%- if (h article.gender = Male) -%>
9:

10: <% else %>
11:

I hope somebody can help me.

Thanks
Mark

On Apr 8, 8:31 pm, Mark [email protected] wrote:

5: <% for article in @articles %>

6:


7: <%= h article.gender %>
8: <%- if (h article.gender = Male) -%>
9:

10: <% else %>
11:

did you want to see if article.gender was the string ‘Male’?. If so
then you need to get rid of the call to h, use == for comparison ( =
is for assignment) and write “Male” rather than Male (ie a string
literal rather than a constant of the same name)

Fred

Ahhh thank you Josh and Frederick,

now it works. It was the problem with the “h”…
I had tried so many different styles but either i’ve forget the
quotation marks or write the “h”…

Thank you for your advise. I’m just working on the code so i hope it
will be more clearly at the end.

Thanks
Mark

As an unrelated, but hopefully helpful aside, I’d also recommend not
duplicating your markup in both the “if” and “else” sections. Doing
things
this way quickly gets hard to read and maintain. Better might be:

<% if (article.gender == “Male”) then color = ‘#d1e1fa’ else color =
#111111’ end %>

This way you only have to write your table markup once and the
conditional
part is clearly called out. When you later on decide to add an attribute
to
your table or replace tables with CSS, or whatever, you have much less
work
to do. Completely optional, but the more you follow this kind of
practice,
the easier and faster you’ll keep things running later.

I only mention this because I’ve seen extreme examples where people copy
and
paste huge chunks of template across if/else conditions just to change
one
or at most a handful of properties. Madness! :slight_smile:

HTH

jsw

Josh _ wrote:

As an unrelated, but hopefully helpful aside, I’d also recommend not
duplicating your markup in both the “if” and “else” sections. Doing
things
this way quickly gets hard to read and maintain. Better might be:

<% if (article.gender == “Male”) then color = ‘#d1e1fa’ else color =
#111111’ end %>

Better yet:

...then define the colors in your CSS. The style attribute leads to unmaintainable HTML and should be avoided like the plague.

Best,

Marnen Laibow-Koser
http://www.marnen.org
[email protected]