Anybody have any idea why this is throwing an error: @monkey = params[ :lab ][ :existing_lab_data_attributes ] raise @monkey.to_yaml --- !map:HashWithIndifferentAccess "133": !map:HashWithIndifferentAccess unit_id: "2" lab_desc_id: "2" value: "500" "145": !map:HashWithIndifferentAccess unit_id: "4" lab_desc_id: "3" value: "" ... But when I try @monkey.delete_if{ |x| x[ :value ].blank? } I get the error: Symbol as array index Any ideas what''s happening, and how to delete blanks in @monkey? Many TIA, Craig -- 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.
On Mar 18, 9:40 pm, Dudebot <craign...-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org> wrote:> Anybody have any idea why this is throwing an error: > > @monkey = params[ :lab ][ :existing_lab_data_attributes ] > raise @monkey.to_yaml > > --- !map:HashWithIndifferentAccess > "133": !map:HashWithIndifferentAccess > unit_id: "2" > lab_desc_id: "2" > value: "500" > "145": !map:HashWithIndifferentAccess > unit_id: "4" > lab_desc_id: "3" > value: "" > ... > > But when I try > > @monkey.delete_if{ |x| x[ :value ].blank? } >Because @monkey is a hash what gets yielded to you is an array, the first element is the key (ie ''133'' or ''145'') and the second is the value, whereas your code seems to assume that x is a hash. Fred -- 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@googlegroups.com. For more options, visit this group at http://groups.google.com/group/rubyonrails-talk?hl=en.
On Mar 18, 4:59 pm, Frederick Cheung <frederick.che...-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org> wrote:> Because @monkey is a hash what gets yielded to you is an array, the > first element is the key (ie ''133'' or ''145'') and the second is the > value, whereas your code seems to assume that x is a hash.Sorry for being so dense, but why does @monkey.delete_if{ |k,v| v[ "value" ] == '''' } Throw the same error? Any idea what the proper syntax would be to delete the element for which value is blank? TIA, Craig -- 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@googlegroups.com. For more options, visit this group at http://groups.google.com/group/rubyonrails-talk?hl=en.
On Mar 19, 12:37 am, Dudebot <craign...-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org> wrote:> Sorry for being so dense, but why does > > @monkey.delete_if{ |k,v| v[ "value" ] == '''' } > > Throw the same error? Any idea what the proper syntax would be to > delete the element for which value is blank? >Shouldn''t do - apart from anything else you''re not using any symbols in this one, and it seems to work ok on my machine. Fred -- 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@googlegroups.com. For more options, visit this group at http://groups.google.com/group/rubyonrails-talk?hl=en.
On Mar 18, 8:07 pm, Frederick Cheung <frederick.che...-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org> wrote:> On Mar 19, 12:37 am, Dudebot <craign...-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org> wrote:> Sorry for being so dense, but why does > > > @monkey.delete_if{ |k,v| v[ "value" ] == '''' } > > > Throw the same error? Any idea what the proper syntax would be to > > delete the element for which value is blank? > > Shouldn''t do - apart from anything else you''re not using any symbols > in this one, and it seems to work ok on my machine.I haven''t been able to get a strategy which deletes, but have been able to get a building strategy: @purple = {} @monkey.each { |k,v| @purple[ k ] = v if !v[ :value ].blank? } which works. Any ideas how to get syntax working which deletes instead of builds.. because I''m obsessive compulsive :) TIA, Craig -- 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@googlegroups.com. For more options, visit this group at http://groups.google.com/group/rubyonrails-talk?hl=en.