Folks,
I have an app that collects customer info and asks the user to click a checkbox if he has a billing address that's different from his shipping info. There's an event listener that detects the checkbox click and renders a partial with the billing address info. Works great. Except that the billing address stuff is not being dumped into params and is therefore not being saved in the model.
I have another app with this same functionality that works perfectly... no idea what's gone wrong here. suggestions?
## main view
<%= form_tag(:action => 'save_customer') %> <%= javascript_include_tag 'prototype' %>
<h3>Please enter your details below</h3>
<div> <label for="name">Name</label><br/> <%= text_field("customer", "name", "size" => 40 ) %><br /> </div>
<div> <label for="email">Your e-mail address</label><br/> <%= text_field("customer", "email", "size" => 40 ) %> </div>
<label for="ship_address1">Your shipping address</label><br/> <%= text_field("customer", "ship_address1", "size" => 40 ) %> </div>
<div> <label for="email">Address line 2</label><br/> <%= text_field("customer", "ship_address2", "size" => 40 ) %> </div>
<div> <label for="bill_city">City</label><br/> <%= text_field("customer", "ship_city", "size" => 40 ) %> </div>
<div> <label for="bill_state">State</label><br/> <%= options = [["Select a state", ""]] + Customer::STATE_NAMES select("customer", "ship_state", options) %> </div>
<div> <label for="bill_zip">Zipcode</label><br/> <%= text_field("customer", "ship_zip", "size" => 10 ) %> </div>
<div> <label for="bill_state">Country</label><br/> <%= options = [["Select a country", ""]] + Customer::COUNTRY_NAMES select("customer", "ship_country", options) %> </div>
<div> <label for="different_bill">Check if you have a different billing address</label><br/>
<%= check_box_tag("different_bill") %> </div>
<%= observe_field(:different_bill, :update => "billinfo", :url => { :controller=>'shirts', :action => 'billing_address' }, :with => "'id='+value" ) %>
<p id="billinfo"></p>
<div> <label for="pay_type">Payment method</label><br/> <select id="pay_type" name="pay_type"><option selected="yes"></option><option>Credit Card</option><option>Paypal</option> </select> </div>
<div> <br /> <%= submit_tag "Save" %> </div> <%= end_form_tag %>
#### partial
<label for="bill_address1">Your billing address</label><br/> <%= text_field("customer", "bill_address1", "size" => 40 ) %> </div>
<div> <label for="email">Address line 2</label><br/> <%= text_field("customer", "bill_address2", "size" => 40 ) %> </div>
<div> <label for="bill_city">City</label><br/> <%= text_field("customer", "bill_city", "size" => 40 ) %> </div>
<div> <label for="bill_state">State</label><br/> <%= options = [["Select a state", ""]] + Customer::STATE_NAMES select("customer", "bill_state", options) %> </div>
<div> <label for="bill_zip">Zipcode</label><br/> <%= text_field("customer", "bill_zip", "size" => 10 ) %> </div>
<div> <label for="bill_state">Country</label><br/> <%= options = [["Select a country", ""]] + Customer::COUNTRY_NAMES select("customer", "bill_country", options) %> </div>
### controller action
def billing_address if params[:id] == "1" render :partial => 'billinfo', :layout => false else render :nothing=>true end end