Spent over 24 hours trying to figure this - multiple params

I feel really stupid spending over 24 hours trying to figure out 1 line of code but I still can't get it.

I have a table addpackages, that I want to update multiple fields from table rosters based on the selection of a drop down.

In addpackage.rb: def create    @addpackage = Addpackage.new(@params["add"])

In new.rhtml (view): <select name="add[email]"> <%=options_from_collection_for_select(@rosters, "email", "lname", selected_value = nil)%>

This code works perfect for obtaining the correct email address based on drop down and updating the addpackages table. I could replace "email" with "fname", "lname", etc etc and it would work fine also. Whats killing me is I can only get one parameter to pass and update. I cannot for the life of me figure out how to pass email, fname, and lname based on the selected drop down.

Don't. Pass the primary key (ie. 'id') in the <select> and then your controller look up that roster entry and now you have access to everything you want.

-philip

with "fname", "lname", etc etc and it would work fine also. Whats killing me is I can only get one parameter to pass and update. I cannot for the life of me figure out how to pass email, fname, and lname based on the selected drop down.

Don't. Pass the primary key (ie. 'id') in the <select> and then your controller look up that roster entry and now you have access to everything you want.

-philip

Okay I made the folling changes to view: <select name="add[id]"> <%=options_from_collection_for_select(@rosters, "id", "lname", selected_value = nil)%>

Now in my controller can you give an example of how to set: roster.fname = addpackage.fname (I know my syntax is incorrect)

Dn't you mean the other way? I think you do... so...

p = Package.new r = Roster.find_by_id(params[:add][:id]) p.fname = r.fname

....