I have this order form that auto populates these fields as you step
through
provider:
customer:
location:
device:
Provider field works great, and then I move to Customer. I need to
capture the providerId from the previous query (although it displays
provider name, the XML returns the Id as well), and use it to do a look
up on customers (SELECT * FROM Customers where providerId = ?). Where am
I going wrong?
but my params[providerId] is blank. Here is the provider and customer
sections in the orderscontroller.rb
def auto_complete_for_provider_order
      @provider = params[:order][:provider].downcase
      @providers = Provider.call_provider_list_service_order(@provider)
    render :partial => ''auto_complete_for_provider_order'',
:locals =>
{:providers => @providers}
  end
  def auto_complete_for_customer_service_order
      @customer = params[:order][:customer].downcase
      @provider = params[:order][:provider].downcase
      @provider_id = params[:providerId]
      @customers Customer.call_customer_list_service_order(@provider_id)
      render :partial =>
''auto_complete_for_customer_service_order'',
:locals => {:customers => @customers}
  end
Here is my provider.rb model
def self.call_provider_list_service_order(provider = '''')
      xml = ""
      x = Builder::XmlMarkup.new(:target => xml)
      x.instruct!
       x.Automanager("xmlns:xsi" =>
"http://www.w3.org/2001/XMLSchema-instance") {
        x.request {
          x.header {
            x.logonid "xxx"
            x.password "yyy"
            x.version "1.3"
            x.requestType "getProviderList"
          }
          x.body {
            x.getProviderList {
            } # end getProviderList
          } # end body
        } # end request
       } # end Automanaager
    result = post(xml)
    doc = REXML::Document.new result.body
    providers = {}
    provider_nodes = REXML::XPath.each( doc, "//provider" ) do
|element|
      if element.elements["name"].text.downcase
=~/^#{provider.downcase}/
       
providers[element.elements["name"].text]=element.elements["providerId"].text
      end
    end
    providers
  end
And here is my customer.rb model
def self.call_customer_list_service_order(provider)
      xml = ""
      x = Builder::XmlMarkup.new(:target => xml)
      x.instruct!
       x.Automanager("xmlns:xsi" =>
"http://www.w3.org/2001/XMLSchema-instance") {
        x.request {
          x.header {
            x.logonid "xxx"
            x.password "yyy"
            x.version "1.3"
            x.requestType "getCustomerList"
          }
          x.body {
            x.getCustomerList {
              x.providerId provider
            } # end getCustomerList
          } # end body
        } # end request
       } # end Automanaager
    result = post(xml)
    doc = REXML::Document.new result.body
    customers = {}
    customer_nodes = REXML::XPath.each( doc, "//customer" ) do
|element|
      if element.elements["name"].text =~/^#{@customer}/
       
customers[element.elements["name"].text]=element.elements["customerId"].text
      end
    end
    customers
  end
-- 
Posted via http://www.ruby-forum.com/.
--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups
"Ruby on Rails: Talk" group.
To post to this group, send email to
rubyonrails-talk-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org
To unsubscribe from this group, send email to
rubyonrails-talk-unsubscribe-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org
For more options, visit this group at
http://groups.google.com/group/rubyonrails-talk?hl=en
-~----------~----~----~----~------~----~------~--~---