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 :

<h1>New member</h1>

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

  <%= link_to_function(image_tag("Young M.jpg"), nil, :id => "M") do |
    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 %>
  <div id='recipient_gender'><% f.hidden_field :gender %></div>
    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

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


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

Very well spotted !
I corrected that but it still doesn't work...

Could you please explain how to do that ?

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...