Forum: Ruby In, how do I set a default value if :state is blank?

Announcement (2017-05-07): is now read-only since I unfortunately do not have the time to support and maintain the forum any more. Please see and for other Rails- und Ruby-related community platforms.
Dbd2ebdd36c3955cc50da310f0b1b893?d=identicon&s=25 Charlie L. (chuck)
on 2016-10-03 21:57
Below my current code. I want to default to "WI" if it's a new record.

<%= :state, Address.state_select, :state? ? 'WI' : :state %>

This does not work. It gave me the following error:

ctionView::Template::Error (undefined method `merge' for "WI":String):
    13:     </p>
    14:     <p>
    15:       <%= f.label :state %>
    16:       <%= :state, Address.state_select, :state? ? 'WI'
: :state %>
    17:     </p>
    18:     <p>
    19:       <%= f.label :zip %>
3a81ced4012650ca2004c9bff7b18202?d=identicon&s=25 Ronald F. (rovf)
on 2016-10-07 14:15
First of all, I don't see any invocation of a method 'merge' in your
code, so I can't comment on that.

What *is* odd, is the expression

    :state? ? 'WI' : :state

It mentions two different symbols: :state? and :state. The condition is
just :state?. If you use a symbol as a condition, it is always
considered true ("every symbol is true"). Hence, the whole expression
always returns the string 'WI'.
This topic is locked and can not be replied to.