Can't update hidden attribute


I want to be able to determine the gender of a person by clicking on a
picture (a boy and a girl’s face), and it doesn’t work. I can see the
F or G appear on the screen (when I don’t want that actually because
it is supposed to be hidden…) but it doesn’t save in the record.

Here is my “new.html.erb” view :

New member

<% form_for(@member) do |f| %>
<%= f.error_messages %>

<%= link_to_function(image_tag("Young M.jpg"), nil, :id => "M") do | page| page.replace_html 'recipient_gender', "M" end %>

<%= link_to_function(image_tag(“Young F.jpg”), nil, :id => “F”) do |
page.replace_html ‘recipient_gender’, “F”
end %>

<% f.hidden_field :gender %>

Nickname: <%= f.text_field :nickname %>

<%= f.submit "Create member" %>

<% end %>

And here are my members_controller corresponding actions :

def new
@member =[:member])

def create
@member =[:member])
flash[:notice] = ‘member is created.’
redirect_to :action => ‘index’
format.html { render :action => “new” }
format.xml { render :xml => @recipient.errors, :status
=> :unprocessable_entity }

Thank you

On 24 Mar 2009, at 13:48, Sacredceltic wrote:

end  %>

<% f.hidden_field :gender %>

Your hidden field isn’t actually inserted into the page at all
(because you’re using <% instead of <%= )


Very well spotted !
I corrected that but it still doesn’t work…

On Mar 24, 2:51 pm, Frederick C. [email protected]

Could you please explain how to do that ?

It won’t work anyway.
In your really clean js code, you’re replacing the content of
“recipient_gender” by text (“f” or “m”).
So, you’re replacing <input type=“hidden” …> by “f” or “m” and it
won’t be submitted to server.

Use labels

any hint ?

Thank you

I tried this :

in my controller :

@male = “M”

in my view :

page.replace_html ‘recipient_gender’, @male

It doesn’t work either…

This forum is not affiliated to the Ruby language, Ruby on Rails framework, nor any Ruby applications discussed here.

| Privacy Policy | Terms of Service | Remote Ruby Jobs