Forum: Ruby on Rails RJS problem after upgrading to Rails 2.0.2

Announcement (2017-05-07): www.ruby-forum.com is now read-only since I unfortunately do not have the time to support and maintain the forum any more. Please see rubyonrails.org/community and ruby-lang.org/en/community for other Rails- und Ruby-related community platforms.
Chris B. (Guest)
on 2008-10-30 01:14
(Received via mailing list)
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)}&nbsp;<span
class='small_error'>#{flash[:error]}</span>"
  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 B.
http://www.randomutterings.com
This topic is locked and can not be replied to.