RJS problem after upgrading to Rails 2.0.2

I just updated an old app from 1.2.6 to 2.0.2 and I’m having an rjs problem. I have one page that has 2 submit to remote buttons, one to do a price override and the other to remove the lineitem. Everything is working perfectly before the update but now the price override doesn’t update the page. I’ve verified that the price_override method still gets called because the price in the session is successfully updated. I even tried deleting everything out of the price_override.rjs and just leaving page.alert “test”. Nothing happens and I have no idea why. Can someone point me in the right direction?

sale_controller.rb

def auto_remove_contract

@contract_lines = []

@contract_lines = session[:contract_lines] unless session[:contract_lines].nil?

@contract_lines.delete_at(params[:contract_index].to_i)

session[:contract_lines] = @contract_lines

calculate_totals

respond_to do |format|

format.js

end

end

def price_override

if request.post?

@type = params[:type]

@price = params[:price]

@index = params[:index]

unless params[:price].blank?

if params[:type] == ‘lineitem’

session[:lineitems][params[:index].to_i][1] = params[:price].to_f unless session[:lineitems].nil?

elsif params[:type] == ‘contract’

session[:contract_lines][params[:index].to_i][5] = params[:price].to_f unless session[:contract_lines].nil?

else

flash[:error] = “There was a problem completing your request, ‘Missing type’.”

end

else

flash[:error] = “Please enter a valid amount.”

end

end

calculate_totals

respond_to do |format|

format.js

end

end

new.rhtml

<% form_tag do %>

<%= hidden_field_tag :index, current_contracts_counter %>

<%= hidden_field_tag :type, ‘contract’ %>

<%= text_field_tag :price, “”, { :id => “contract_price_override_#{current_contracts_counter}” } %>

<%= submit_to_remote('update_contract', 'Update', :url => { :action => 'price_override' }, :html => {:style => "width:60px;"}) %>

<%= hidden_field_tag :contract_index, current_contracts_counter %>

    <%= submit_to_remote('remove_contract', 'Remove', :url => { :action => 'auto_remove_contract'}, :html => {:style => "width:60px;"}) %>

  <% end %>

price_override.rjs

page << “document.getElementById(’#{@type}price_override#{@index}’).value = ‘’;”

if flash[:error].blank?

page.replace_html “#{@type}price#{@index}”, number_to_currency(@price.to_f)

page.visual_effect :highlight, “#{@type}price#{@index}”

page.replace_html :current_totals, :partial => ‘current_totals’

page.visual_effect :highlight, :current_totals

else

page.replace_html “#{@type}price#{@index}”, “#{number_to_currency(@price.to_f)} #{flash[:error]}

flash.discard

end

auto_remove_contract.rjs

if flash[:error].blank?

page.replace_html :current_contracts, :partial => ‘current_contracts’, :collection => @contract_lines

page.visual_effect :highlight, :current_contracts_holder

page.replace_html :current_totals, :partial => ‘current_totals’

page.visual_effect :highlight, :current_totals

else

page.alert flash[:error]

flash.discard

end

Chris Barnes
http://www.randomutterings.com