Can't update hidden attribute


#1

Hi,

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|
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 = current_user.members.build(params[:member])
end

def create
@member = current_user.members.build(params[:member])
if @member.save
flash[:notice] = ‘member is created.’
redirect_to :action => ‘index’
else
format.html { render :action => “new” }
format.xml { render :xml => @recipient.errors, :status
=> :unprocessable_entity }
end
end

Thank you


#2

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 <%= )

Fred


#3

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

On Mar 24, 2:51 pm, Frederick C. removed_email_address@domain.invalid


#4

Could you please explain how to do that ?


#5

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


#6

any hint ?

Thank you


#7

I tried this :

in my controller :

@male = “M”
@female=“F”

in my view :

page.replace_html ‘recipient_gender’, @male

It doesn’t work either…