Hi,
I use attachment_fu and it slows down update.
[Models]
product has many pictures.
[Update]
product.update_attributes("pictures_attributes"=>{
"6"=>{"_delete"=>"0",
"color_id"=>"3", "id"=>"2953"},
"11"=>{"_delete"=>"0",
"color_id"=>"9", "id"=>"2921"},
"22"=>{"_delete"=>"0",
"color_id"=>"24", "id"=>"2977"},
"7"=>{"_delete"=>"0",
"color_id"=>"4", "id"=>"2965"},
"12"=>{"_delete"=>"0",
"color_id"=>"10", "id"=>"2949"},
"23"=>{"_delete"=>"0",
"color_id"=>"27", "id"=>"2969"},
"8"=>{"_delete"=>"0",
"color_id"=>"5", "id"=>"2917"},
"13"=>{"_delete"=>"0",
"color_id"=>"11", "id"=>"2913"},
"24"=>{"_delete"=>"0",
"color_id"=>"28", "id"=>"2985"},
"9"=>{"_delete"=>"0",
"color_id"=>"7", "id"=>"2989"},
"14"=>{"_deete"=>"0",
"color_id"=>"12", "id"=>"2973"},
"25"=>{"_delete"=>"0",
"color_id"=>"77", "id"=>"2997"},
"15"=>{"_delete"=>"0",
"color_id"=>"13", "id"=>"2925"},
"0"=>{"_delete"=>"0",
"color_id"=>"", "id"=>"2937"},
"16"=>{"_delete"=>"0",
"color_id"=>"14", "id"=>"2941"},
"1"=>{"_delete"=>"0",
"color_id"=>"", "id"=>"2981"},
"17"=>{"_delete"=>"0",
"color_id"=>"14", "id"=>"1897"},
"2"=>{"_delete"=>"0",
"color_id"=>"", "id"=>"2961"},
"18"=>{"_delete"=>"0",
"color_id"=>"16", "id"=>"2929"},
"3"=>{"_delete"=>"0",
"colo_id"=>"2", "id"=>"2909"},
"19"=>{"_delete"=>"0",
"color_id"=>"17", "id"=>"2945"},
"20"=>{"_delete"=>"0",
"color_id"=>"18", "id"=>"2957"},
"4"=>{"_delete"=>"0",
"color_id"=>"2", "id"=>"1893"},
"10"=>{"_delete"=>"0",
"color_id"=>"8", "id"=>"2993"},
"21"=>{"_delete"=>"0",
"color_id"=>"21", "id"=>"2933"},
"5"=>{"_delete"=>"0",
"color_id"=>"3", "id"=>"1901"}
})
This takes 15 seconds.
The workaround I found is
product.attributes = "pictures_attributes"=>{
"6"=>{"_delete"=>"0",
"color_id"=>"3", "id"=>"2953"},
"11"=>{"_delete"=>"0",
"color_id"=>"9", "id"=>"2921"},
"22"=>{"_delete"=>"0",
"color_id"=>"24", "id"=>"2977"},
"7"=>{"_delete"=>"0",
"color_id"=>"4", "id"=>"2965"},
"12"=>{"_delete"=>"0",
"color_id"=>"10", "id"=>"2949"},
"23"=>{"_delete"=>"0",
"color_id"=>"27", "id"=>"2969"},
"8"=>{"_delete"=>"0",
"color_id"=>"5", "id"=>"2917"},
"13"=>{"_delete"=>"0",
"color_id"=>"11", "id"=>"2913"},
"24"=>{"_delete"=>"0",
"color_id"=>"28", "id"=>"2985"},
"9"=>{"_delete"=>"0",
"color_id"=>"7", "id"=>"2989"},
"14"=>{"_deete"=>"0",
"color_id"=>"12", "id"=>"2973"},
"25"=>{"_delete"=>"0",
"color_id"=>"77", "id"=>"2997"},
"15"=>{"_delete"=>"0",
"color_id"=>"13", "id"=>"2925"},
"0"=>{"_delete"=>"0",
"color_id"=>"", "id"=>"2937"},
"16"=>{"_delete"=>"0",
"color_id"=>"14", "id"=>"2941"},
"1"=>{"_delete"=>"0",
"color_id"=>"", "id"=>"2981"},
"17"=>{"_delete"=>"0",
"color_id"=>"14", "id"=>"1897"},
"2"=>{"_delete"=>"0",
"color_id"=>"", "id"=>"2961"},
"18"=>{"_delete"=>"0",
"color_id"=>"16", "id"=>"2929"},
"3"=>{"_delete"=>"0",
"colo_id"=>"2", "id"=>"2909"},
"19"=>{"_delete"=>"0",
"color_id"=>"17", "id"=>"2945"},
"20"=>{"_delete"=>"0",
"color_id"=>"18", "id"=>"2957"},
"4"=>{"_delete"=>"0",
"color_id"=>"2", "id"=>"1893"},
"10"=>{"_delete"=>"0",
"color_id"=>"8", "id"=>"2993"},
"21"=>{"_delete"=>"0",
"color_id"=>"21", "id"=>"2933"},
"5"=>{"_delete"=>"0",
"color_id"=>"3", "id"=>"1901"}
})
product.save false
This is fast but I am not sure this is the right way.
Is there a better way?
Thanks.
Sam
--
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-/JYPxA39Uh5TLH3MbocFF+G/Ez6ZCGd0@public.gmane.org
To unsubscribe from this group, send email to
rubyonrails-talk+unsubscribe-/JYPxA39Uh5TLH3MbocFF+G/Ez6ZCGd0@public.gmane.org
For more options, visit this group at
http://groups.google.com/group/rubyonrails-talk?hl=en.