params[:subscribers].each do |subscriber_hash|
   my_record = SubscriberModel.new(subscriber_hash)
   my_record.save
end if params[:subscribers]

Assuming that SubscriberModel is an activerecord model that maps to a
table with similar layout as the hash.

Otherwise, define your own class with an initializer method like so
and do whatever you want with it.

class SubscriberModel
  attr_accessor :name, :msidsm, :imsi, :imei
  def initialize(init_hash={})
    @name = init_hash["name"]
    @msidsm = init_hash["msidsm"]
    @imsi = init_hash["imsi"]
    @imei = init_hash["imei"]
  end
end

----------------------

Alternatively, I could be way off base.  Let me know if it works for
you. :p


On Sep 9, 2:23 pm, comopasta Gr <[email protected]>
wrote:
> Hi,
>
> I give up trying. I need to ask this basic question about collections
> and hashes.
>
> I'm trying to do a batch update of records using XML:
>
> <?xml version="1.0" encoding="UTF-8"?>
> <subscribers>
> <subscriber>
>   <imei>111</imei>
>   <imsi>111</imsi>
>   <msidsm>111</msidsm>
>   <name>Six</name>
> </subscriber>
> <subscriber>
>   <imei>777</imei>
>   <imsi>777</imsi>
>   <msidsm>777</msidsm>
>   <name>Seven</name>
> </subscriber>
> </subscribers>
>
> I have this in the routes:
>
> map.resources :subscribers, :collection => {:import => :post}
>
> When I post the XML I get:
>
> Processing SubscribersController#import (for 127.0.0.1 at 2009-09-09
> 12:18:22) [POST]
>   Parameters: {"action"=>"import",
> "subscribers"=>{"subscriber"=>[{"name"=>"Six", "msidsm"=>"111",
> "imsi"=>"111", "imei"=>"111"}, {"name"=>"Seven", "msidsm"=>"777",
> "imsi"=>"777", "imei"=>"777"}]}, "controller"=>"subscribers"}
>
> --------------------------------
>
> How can I easily create subscriber records for those I send in the XML?
> I've managed to extract the data but it fails when only one subscriber
> element is included in the XML.
>
> What would be the best way to do this?
>
> Thanks.
> --
> Posted viahttp://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 [email protected]
To unsubscribe from this group, send email to 
[email protected]
For more options, visit this group at 
http://groups.google.com/group/rubyonrails-talk?hl=en
-~----------~----~----~----~------~----~------~--~---

Reply via email to