Complete stumper: variable exists in hidden_field_tag, but n


#1

This is a real mystery to me. I have an instance variable in a partial
that only gives its value inside a hidden_field_tag. If I try to use
the variable anywhere else in the partial, i either get nil or an
undefined error. The goal is to use the value of @event.id outside of
hidden_field_tag.

Here’s what works:
<%= hidden_field_tag ‘id’, @event && @event.id, :id => ‘event_id’ %>

…spits out this HTML:

So I read that to mean that @event.id is 771. Fine, good. However, if
I change the line to this:
<%= hidden_field_tag ‘id’, @event.id, :id => ‘event_id’ %>

…I get an error:

RuntimeError in Controller#index

Showing app/views/controller/_contacts.rhtml where line #81 raised:

Called id for nil, which would mistakenly be 4 – if you really wanted
the id of nil, use object_id

Furthermore, if I say this elsewhere in the same partial:
the event id is: <%= @event && @event.id %>END

…I get this:

the event is: END

And finally if I do this:

    <%= hidden_field_tag 'id', @event && @event.id, :id =>

‘event_id’ %>
<%= hidden_field_tag ‘id’, @event && @event.id, :id =>
‘event_id’ %>
<%= hidden_field_tag ‘id’, @event && @event.id, :id =>
‘event_id’ %>
<%= hidden_field_tag ‘id’, @event && @event.id, :id =>
‘event_id’ %>
<%= hidden_field_tag ‘id’, @event && @event.id, :id =>
‘event_id’ %>

…only the FIRST one works:

Anyone got a handle on this? I’ve never seen a problem like this
before and it’s driving me completely nuts. I’d really be grateful for
any tips or fixes.

Thanks!
-Jason


#2

Hi Jason,

Jason F. wrote:

value=“771”/>

So I read that to mean that @event.id is 771. Fine, good.

I don’t think it’s doing what you think it’s doing. This may help:
http://www.railsforum.com/viewtopic.php?pid=28781

Best regards,
Bill